[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60603] trunk/blender/source/blender/ blenkernel/intern/curve.c: replace len_v3v3 with len_squared_v3v3 for comparisons.

Campbell Barton ideasman42 at gmail.com
Tue Oct 8 14:03:50 CEST 2013


Revision: 60603
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60603
Author:   campbellbarton
Date:     2013-10-08 12:03:49 +0000 (Tue, 08 Oct 2013)
Log Message:
-----------
replace len_v3v3 with len_squared_v3v3 for comparisons.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/curve.c

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c	2013-10-08 11:27:39 UTC (rev 60602)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c	2013-10-08 12:03:49 UTC (rev 60603)
@@ -3172,6 +3172,8 @@
 void BKE_nurb_handles_autocalc(Nurb *nu, int flag)
 {
 	/* checks handle coordinates and calculates type */
+	const float eps = 0.0001f;
+	const float eps_sq = eps * eps;
 
 	BezTriple *bezt2, *bezt1, *bezt0;
 	int i, align, leftsmall, rightsmall;
@@ -3191,18 +3193,18 @@
 		if (flag == 0 || (bezt1->f1 & flag) ) {
 			bezt1->h1 = HD_FREE;
 			/* distance too short: vectorhandle */
-			if (len_v3v3(bezt1->vec[1], bezt0->vec[1]) < 0.0001f) {
+			if (len_squared_v3v3(bezt1->vec[1], bezt0->vec[1]) < eps_sq) {
 				bezt1->h1 = HD_VECT;
 				leftsmall = 1;
 			}
 			else {
 				/* aligned handle? */
-				if (dist_to_line_v2(bezt1->vec[1], bezt1->vec[0], bezt1->vec[2]) < 0.0001f) {
+				if (dist_to_line_v2(bezt1->vec[1], bezt1->vec[0], bezt1->vec[2]) < eps) {
 					align = 1;
 					bezt1->h1 = HD_ALIGN;
 				}
 				/* or vector handle? */
-				if (dist_to_line_v2(bezt1->vec[0], bezt1->vec[1], bezt0->vec[1]) < 0.0001f)
+				if (dist_to_line_v2(bezt1->vec[0], bezt1->vec[1], bezt0->vec[1]) < eps)
 					bezt1->h1 = HD_VECT;
 			}
 		}
@@ -3210,7 +3212,7 @@
 		if (flag == 0 || (bezt1->f3 & flag) ) {
 			bezt1->h2 = HD_FREE;
 			/* distance too short: vectorhandle */
-			if (len_v3v3(bezt1->vec[1], bezt2->vec[1]) < 0.0001f) {
+			if (len_squared_v3v3(bezt1->vec[1], bezt2->vec[1]) < eps_sq) {
 				bezt1->h2 = HD_VECT;
 				rightsmall = 1;
 			}
@@ -3219,7 +3221,7 @@
 				if (align) bezt1->h2 = HD_ALIGN;
 
 				/* or vector handle? */
-				if (dist_to_line_v2(bezt1->vec[2], bezt1->vec[1], bezt2->vec[1]) < 0.0001f)
+				if (dist_to_line_v2(bezt1->vec[2], bezt1->vec[1], bezt2->vec[1]) < eps)
 					bezt1->h2 = HD_VECT;
 			}
 		}




More information about the Bf-blender-cvs mailing list