[Bf-blender-cvs] [2ea96df] master: Correct own error in line_point_factor

Campbell Barton noreply at git.blender.org
Fri Sep 4 14:34:50 CEST 2015


Commit: 2ea96df15990b46f11fa8b2f6065d53814cbc990
Author: Campbell Barton
Date:   Fri Sep 4 16:48:25 2015 +1000
Branches: master
https://developer.blender.org/rB2ea96df15990b46f11fa8b2f6065d53814cbc990

Correct own error in line_point_factor

Passing zero epsilon allowed divide by zero.

===================================================================

M	source/blender/blenlib/intern/math_geom.c

===================================================================

diff --git a/source/blender/blenlib/intern/math_geom.c b/source/blender/blenlib/intern/math_geom.c
index feb9f7d..baee17e 100644
--- a/source/blender/blenlib/intern/math_geom.c
+++ b/source/blender/blenlib/intern/math_geom.c
@@ -2175,6 +2175,9 @@ float closest_to_line_v2(float cp[2], const float p[2], const float l1[2], const
 /**
  * A simplified version of #closest_to_line_v3
  * we only need to return the ``lambda``
+ *
+ * \param epsilon: avoid approaching divide-by-zero.
+ * Passing a zero will just check for nonzero division.
  */
 float line_point_factor_v3_ex(
         const float p[3], const float l1[3], const float l2[3],
@@ -2189,7 +2192,7 @@ float line_point_factor_v3_ex(
 #else
 	/* better check for zero */
 	dot = dot_v3v3(u, u);
-	return (fabsf(dot) >= epsilon) ? (dot_v3v3(u, h) / dot) : fallback;
+	return (fabsf(dot) > epsilon) ? (dot_v3v3(u, h) / dot) : fallback;
 #endif
 }
 float line_point_factor_v3(
@@ -2211,7 +2214,7 @@ float line_point_factor_v2_ex(
 #else
 	/* better check for zero */
 	dot = dot_v2v2(u, u);
-	return (fabsf(dot) >= epsilon) ? (dot_v2v2(u, h) / dot) : fallback;
+	return (fabsf(dot) > epsilon) ? (dot_v2v2(u, h) / dot) : fallback;
 #endif
 }




More information about the Bf-blender-cvs mailing list