From 72f02437e7f53270876438222e9563b5be656425 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Tue, 3 Feb 2015 04:35:02 +1100 Subject: Warp modifier: avoid sqrt checking radius --- source/blender/modifiers/intern/MOD_warp.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'source/blender/modifiers/intern/MOD_warp.c') diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c index 60ed4be3604..9abec803d05 100644 --- a/source/blender/modifiers/intern/MOD_warp.c +++ b/source/blender/modifiers/intern/MOD_warp.c @@ -167,6 +167,7 @@ static void warpModifier_do(WarpModifierData *wmd, Object *ob, float tmat[4][4]; + const float falloff_radius_sq = SQUARE(wmd->falloff_radius); float strength = wmd->strength; float fac = 1.0f, weight; int i; @@ -222,8 +223,8 @@ static void warpModifier_do(WarpModifierData *wmd, Object *ob, float *co = vertexCos[i]; if (wmd->falloff_type == eWarp_Falloff_None || - ((fac = len_v3v3(co, mat_from[3])) < wmd->falloff_radius && - (fac = (wmd->falloff_radius - fac) / wmd->falloff_radius))) + ((fac = len_squared_v3v3(co, mat_from[3])) < falloff_radius_sq && + (fac = (wmd->falloff_radius - sqrtf(fac)) / wmd->falloff_radius))) { /* skip if no vert group found */ if (dvert && defgrp_index != -1) { -- cgit v1.2.3