[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