Math Lib: isect_plane_*_v3 avoid negation

Unmeasurable speedup for plane intersection.
This commit is contained in:
Campbell Barton
2015-09-05 17:42:31 +10:00
parent ba188cf98d
commit b8e0b2db56

View File

@@ -1577,14 +1577,14 @@ bool isect_plane_plane_plane_v3(
* plane_c.xyz.cross(plane_a.xyz) * -plane_b[3] +
* plane_a.xyz.cross(plane_b.xyz) * -plane_c[3]) / det; */
cross_v3_v3v3(tmp, plane_b, plane_c);
mul_v3_v3fl(r_isect_co, tmp, -plane_a[3]);
cross_v3_v3v3(tmp, plane_c, plane_b);
mul_v3_v3fl(r_isect_co, tmp, plane_a[3]);
cross_v3_v3v3(tmp, plane_c, plane_a);
madd_v3_v3fl(r_isect_co, tmp, -plane_b[3]);
cross_v3_v3v3(tmp, plane_a, plane_c);
madd_v3_v3fl(r_isect_co, tmp, plane_b[3]);
cross_v3_v3v3(tmp, plane_a, plane_b);
madd_v3_v3fl(r_isect_co, tmp, -plane_c[3]);
cross_v3_v3v3(tmp, plane_b, plane_a);
madd_v3_v3fl(r_isect_co, tmp, plane_c[3]);
mul_v3_fl(r_isect_co, 1.0f / det);
@@ -1625,11 +1625,11 @@ bool isect_plane_plane_v3(
/* (plane_b.xyz.cross(plane_c.xyz) * -plane_a[3] +
* plane_c.xyz.cross(plane_a.xyz) * -plane_b[3]) / det; */
cross_v3_v3v3(tmp, plane_b, plane_c);
mul_v3_v3fl(r_isect_co, tmp, -plane_a[3]);
cross_v3_v3v3(tmp, plane_c, plane_b);
mul_v3_v3fl(r_isect_co, tmp, plane_a[3]);
cross_v3_v3v3(tmp, plane_c, plane_a);
madd_v3_v3fl(r_isect_co, tmp, -plane_b[3]);
cross_v3_v3v3(tmp, plane_a, plane_c);
madd_v3_v3fl(r_isect_co, tmp, plane_b[3]);
mul_v3_fl(r_isect_co, 1.0f / det);