X-Git-Url: http://git.megacz.com/?p=anneal.git;a=blobdiff_plain;f=src%2Fedu%2Fberkeley%2Fqfat%2Fgeom%2FPlane.java;h=966eebfaf72f717ea09a0e1d018c5168e57b00ab;hp=fe23b83903aba072c46f4aea96f999bef938ec73;hb=25e20292fd5cab60f85ff8af42357e396c97f198;hpb=00235327934dbc5ffaf5b09cbda538ee0d3686e8 diff --git a/src/edu/berkeley/qfat/geom/Plane.java b/src/edu/berkeley/qfat/geom/Plane.java index fe23b83..966eebf 100644 --- a/src/edu/berkeley/qfat/geom/Plane.java +++ b/src/edu/berkeley/qfat/geom/Plane.java @@ -79,10 +79,17 @@ public class Plane implements AffineConstraint { } else if (c instanceof Line) { Line l = (Line)c; - if ( Math.abs(a + b*l.m + this.c*l.n) <= epsilon && - Math.abs(b * l.c + this.c * l.d + d) <= epsilon) + if (Math.abs(a + b*l.m + this.c*l.n) <= epsilon && + Math.abs(b * l.c + this.c*l.d + d) <= epsilon) return l; - throw new RuntimeException("not yet implemented"); + + // FIXME: parallel case + + float x = (d - b*l.c - this.c*l.d) / (a + b*l.m + this.c*l.n); + float y = l.m*x+l.c; + float z = l.n*x+l.d; + return new Point(x,y,z); + //throw new RuntimeException("not yet implemented"); } else return c.intersect(this, epsilon);