[Bf-blender-cvs] [9683c2b] master: Fix T42833: Kink on nurbs curve

Campbell Barton noreply at git.blender.org
Fri Feb 27 10:18:02 CET 2015


Commit: 9683c2b129e5a1bacdb12a18497e544f4d4b82ae
Author: Campbell Barton
Date:   Fri Feb 27 20:14:15 2015 +1100
Branches: master
https://developer.blender.org/rB9683c2b129e5a1bacdb12a18497e544f4d4b82ae

Fix T42833: Kink on nurbs curve

Threshold for normalizing was too big.

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

M	source/blender/blenkernel/intern/curve.c

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

diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c
index e88a8ec..b6a167d 100644
--- a/source/blender/blenkernel/intern/curve.c
+++ b/source/blender/blenkernel/intern/curve.c
@@ -1247,6 +1247,7 @@ void BKE_nurb_makeFaces(Nurb *nu, float *coord_array, int rowstride, int resolu,
 void BKE_nurb_makeCurve(Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array,
                         int resolu, int stride)
 {
+	const float eps = 1e-6f;
 	BPoint *bp;
 	float u, ustart, uend, ustep, sumdiv;
 	float *basisu, *sum, *fp;
@@ -1305,7 +1306,7 @@ void BKE_nurb_makeCurve(Nurb *nu, float *coord_array, float *tilt_array, float *
 			*fp = basisu[i] * bp->vec[3];
 			sumdiv += *fp;
 		}
-		if ((sumdiv != 0.0f) && (sumdiv < 0.999f || sumdiv > 1.001f)) {
+		if ((sumdiv != 0.0f) && (sumdiv < 1.0f - eps || sumdiv > 1.0f + eps)) {
 			/* is normalizing needed? */
 			fp = sum;
 			for (i = istart; i <= iend; i++, fp++) {




More information about the Bf-blender-cvs mailing list