diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-06-17 18:37:12 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-06-17 18:37:12 +0400 |
commit | d761b91b65487715a23f2b8ddf0efc4dec5b0278 (patch) | |
tree | 7379065220eb66710bdf9e43c582fc7fbec56107 /source/blender/editors/transform/transform_conversions.c | |
parent | 544572a59b42598dcb7fe82814ef32a51b2fb42a (diff) |
reduce sqrt's calls in set_prop_dist().
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r-- | source/blender/editors/transform/transform_conversions.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index d8f763c6a54..c3848c06b06 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -196,7 +196,7 @@ static void sort_trans_data(TransInfo *t) /* 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,12 +216,9 @@ static void set_prop_dist(TransInfo *t, short with_dist) 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; - } - else if (dist < tob->rdist) { - tob->rdist = dist; + dist = len_squared_v3(vec); + if ((tob->rdist == -1.0f) || (dist < (tob->rdist * tob->rdist))) { + tob->rdist = sqrtf(dist); } } else { |