2
0
Эх сурвалжийг харах

added Ray.distance(plane)

Nicolas Cannasse 4 жил өмнө
parent
commit
c5cfe4822c
1 өөрчлөгдсөн 7 нэмэгдсэн , 0 устгасан
  1. 7 0
      h3d/col/Ray.hx

+ 7 - 0
h3d/col/Ray.hx

@@ -73,6 +73,13 @@ class Ray {
 		return "Ray{" + getPos() + "," + getDir() + "}";
 	}
 
+	public inline function distance( p : Plane ) : Float {
+		var d = lx * p.nx + ly * p.ny + lz * p.nz;
+		var nd = p.d - (px * p.nx + py * p.ny + pz * p.nz);
+		// line parallel with plane
+		return Math.abs(d) < Math.EPSILON ? (Math.abs(nd) < Math.EPSILON ? 0. : -1) : nd / d;
+	}
+
 	public inline function intersect( p : Plane ) : Null<Point> {
 		var d = lx * p.nx + ly * p.ny + lz * p.nz;
 		var nd = p.d - (px * p.nx + py * p.ny + pz * p.nz);