[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