diff options
Diffstat (limited to 'source/blender/blenlib/intern/math_geom.c')
-rw-r--r-- | source/blender/blenlib/intern/math_geom.c | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c index 898e97613c1..99eee0aa51c 100644 --- a/source/blender/blenlib/intern/math_geom.c +++ b/source/blender/blenlib/intern/math_geom.c @@ -1959,16 +1959,18 @@ bool isect_ray_tri_threshold_v3(const float ray_origin[3], cross_v3_v3v3(p, ray_direction, e2); a = dot_v3v3(e1, p); - if ((a > -epsilon) && (a < epsilon)) + if ((a > -epsilon) && (a < epsilon)) { return false; + } f = 1.0f / a; sub_v3_v3v3(s, ray_origin, v0); cross_v3_v3v3(q, s, e1); *r_lambda = f * dot_v3v3(e2, q); - if ((*r_lambda < 0.0f)) + if ((*r_lambda < 0.0f)) { return false; + } u = f * dot_v3v3(s, p); v = f * dot_v3v3(ray_direction, q); @@ -1979,19 +1981,25 @@ bool isect_ray_tri_threshold_v3(const float ray_origin[3], dv = v - t; } else { - if (u < 0) + if (u < 0) { du = u; - else if (u > 1) + } + else if (u > 1) { du = u - 1; - else + } + else { du = 0.0f; + } - if (v < 0) + if (v < 0) { dv = v; - else if (v > 1) + } + else if (v > 1) { dv = v - 1; - else + } + else { dv = 0.0f; + } } mul_v3_fl(e1, du); |