[Bf-blender-cvs] [17f17a7] GPencil_Editing_Stage3: GP Stroke Sculpting: Fix bug with falloff calculation
Joshua Leung
noreply at git.blender.org
Mon Jul 6 16:49:26 CEST 2015
Commit: 17f17a701320ec9775e3dd41be1135287269b56b
Author: Joshua Leung
Date: Tue Jul 7 02:34:21 2015 +1200
Branches: GPencil_Editing_Stage3
https://developer.blender.org/rB17f17a701320ec9775e3dd41be1135287269b56b
GP Stroke Sculpting: Fix bug with falloff calculation
Falloff calculation was incorrect as it could produce invalid values if the
distance to a point exceeeded the radius of the brush, resulting in "large
negative values".
===================================================================
M source/blender/editors/gpencil/gpencil_brush.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_brush.c b/source/blender/editors/gpencil/gpencil_brush.c
index 3933748..af8a60f 100644
--- a/source/blender/editors/gpencil/gpencil_brush.c
+++ b/source/blender/editors/gpencil/gpencil_brush.c
@@ -171,8 +171,15 @@ static float gp_brush_influence_calc(tGP_BrushEditData *gso, const int radius,
/* distance fading */
if (brush->flag & GP_EDITBRUSH_FLAG_USE_FALLOFF) {
- float distance = sqrtf((mx - x0) * (mx - x0) + (my - y0) * (my - y0));
- float fac = 1.0f - (distance / (float)radius);
+ // XXX: these should just get passed in like this (and then we can use the len_v2v2_int version?)
+ const float mvec[2] = {(float)mx, (float)my};
+ const float pvec[2] = {(float)x0, (float)y0};
+
+ float distance = len_v2v2(mvec, pvec);
+ float fac;
+
+ CLAMP(distance, 0.0f, (float)radius);
+ fac = 1.0f - (distance / (float)radius);
influence *= fac;
}
More information about the Bf-blender-cvs
mailing list