Revision: 39915
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=39915
Author: campbellbarton
Date: 2011-09-05 03:53:26 +0000 (Mon, 05 Sep 2011)
Log Message:
-----------
change proximity method since minimum distance of 0.0 wasnt working at all.
Modified Paths:
--------------
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgproximity.c
Modified:
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgproximity.c
===================================================================
---
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgproximity.c
2011-09-05 03:26:49 UTC (rev 39914)
+++
branches/vgroup_modifiers/source/blender/modifiers/intern/MOD_weightvgproximity.c
2011-09-05 03:53:26 UTC (rev 39915)
@@ -205,11 +205,13 @@
*/
void do_map(float *weights, const int nidx, const float min_d, const float
max_d)
{
- int i;
- float b = min_d / (min_d - max_d);
- float a = -b / min_d;
- for (i = 0; i < nidx; i++)
- weights[i] = a * weights[i] + b;
+ const float range_inv= 1.0f / (max_d - min_d); /* invert since
multiplication is faster */
+ unsigned int i= nidx;
+ while (i-- > 0) {
+ if (weights[i] >= max_d) weights[i]= 1.0f; /* most likely
case first */
+ else if(weights[i] <= min_d) weights[i]= 0.0f;
+ else weights[i]= (weights[i] - min_d) *
range_inv;
+ }
}
/*a min_d + b = 0.0*/
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs