[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57521] trunk/blender/source/blender/ editors/transform/transform_conversions.c: reduce sqrt' s calls in set_prop_dist().

Campbell Barton ideasman42 at gmail.com
Mon Jun 17 16:37:13 CEST 2013


Revision: 57521
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57521
Author:   campbellbarton
Date:     2013-06-17 14:37:12 +0000 (Mon, 17 Jun 2013)
Log Message:
-----------
reduce sqrt's calls in set_prop_dist().

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-06-17 13:34:17 UTC (rev 57520)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2013-06-17 14:37:12 UTC (rev 57521)
@@ -196,7 +196,7 @@
 
 /* distance calculated from not-selected vertex to nearest selected vertex
  * warning; this is loops inside loop, has minor N^2 issues, but by sorting list it is OK */
-static void set_prop_dist(TransInfo *t, short with_dist)
+static void set_prop_dist(TransInfo *t, const bool with_dist)
 {
 	TransData *tob;
 	int a;
@@ -216,13 +216,10 @@
 				if (td->flag & TD_SELECTED) {
 					sub_v3_v3v3(vec, tob->center, td->center);
 					mul_m3_v3(tob->mtx, vec);
-					dist = normalize_v3(vec);
-					if (tob->rdist == -1.0f) {
-						tob->rdist = dist;
+					dist = len_squared_v3(vec);
+					if ((tob->rdist == -1.0f) || (dist < (tob->rdist * tob->rdist))) {
+						tob->rdist = sqrtf(dist);
 					}
-					else if (dist < tob->rdist) {
-						tob->rdist = dist;
-					}
 				}
 				else {
 					break;  /* by definition transdata has selected items in beginning */




More information about the Bf-blender-cvs mailing list