Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-09-04 10:02:51 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-09-04 15:06:36 +0300
commitd0e7ba3fd1a9becfc843eeee1d1f9fffd83f3748 (patch)
tree68eb96c47c7592f54573a775214a545b9360de82 /source/blender/blenlib/intern/math_geom.c
parent2ea96df15990b46f11fa8b2f6065d53814cbc990 (diff)
Math Lib: avoid sqrt w/ triangle intersection
Diffstat (limited to 'source/blender/blenlib/intern/math_geom.c')
-rw-r--r--source/blender/blenlib/intern/math_geom.c14
1 files changed, 4 insertions, 10 deletions
diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c
index baee17e95db..dca54f51a5f 100644
--- a/source/blender/blenlib/intern/math_geom.c
+++ b/source/blender/blenlib/intern/math_geom.c
@@ -1647,14 +1647,8 @@ bool isect_tri_tri_epsilon_v3(
float span_fac;
interp_v3_v3v3(ix_tri, tri_pair[t][j_prev], tri_pair[t][j], edge_fac);
-#if 0
- span_fac = dist_signed_squared_to_plane3_v3(ix_tri, plane_no);
-#else
- {
- span_fac = dot_v3v3(plane_no, ix_tri);
- span_fac = copysignf(span_fac * span_fac, span_fac);
- }
-#endif
+ /* the actual distance, since 'plane_no' is normalized */
+ span_fac = dot_v3v3(plane_no, ix_tri);
range[t].min = min_ff(range[t].min, span_fac);
range[t].max = max_ff(range[t].max, span_fac);
@@ -1671,8 +1665,8 @@ bool isect_tri_tri_epsilon_v3(
{
if (r_i1 && r_i2) {
project_plane_v3_v3v3(plane_co, plane_co, plane_no);
- madd_v3_v3v3fl(r_i1, plane_co, plane_no, sqrtf_signed(max_ff(range[0].min, range[1].min)));
- madd_v3_v3v3fl(r_i2, plane_co, plane_no, sqrtf_signed(min_ff(range[0].max, range[1].max)));
+ madd_v3_v3v3fl(r_i1, plane_co, plane_no, max_ff(range[0].min, range[1].min));
+ madd_v3_v3v3fl(r_i2, plane_co, plane_no, min_ff(range[0].max, range[1].max));
}
return true;