[Bf-blender-cvs] [6d272e612e2] greasepencil-object: Remap pixel scale parameter
Antonio Vazquez
noreply at git.blender.org
Fri Nov 10 09:01:38 CET 2017
Commit: 6d272e612e20804ab2b74044bbafc6ef4d2327b4
Author: Antonio Vazquez
Date: Fri Nov 10 08:59:51 2017 +0100
Branches: greasepencil-object
https://developer.blender.org/rB6d272e612e20804ab2b74044bbafc6ef4d2327b4
Remap pixel scale parameter
The value for control point density was strange.
===================================================================
M source/blender/editors/gpencil/gpencil_paint.c
M source/blender/makesdna/DNA_gpencil_types.h
M source/blender/makesrna/intern/rna_scene.c
===================================================================
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 2c96943874b..c65d0d6feab 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -499,6 +499,7 @@ static bool gp_smooth_buffer_point(bGPdata *gpd, bGPDbrush *brush)
float sco[3] = { 0.0f };
float inf = brush->draw_stabifac;
const float draw_stabangle = 1.0f - brush->draw_stabangle;
+ const float draw_pxdensity = brush->draw_pxdensity * brush->draw_pxdensity;
/* if no stabilization, return */
if (brush->draw_stabifac == 0) {
return false;
@@ -535,7 +536,7 @@ static bool gp_smooth_buffer_point(bGPdata *gpd, bGPDbrush *brush)
float sqsize_ac = len_squared_v2v2(fpta, fpt);
float lambda = closest_to_line_v2(estimated_co, fpt, fpta, fptb);
/* need a minimum space between points to apply */
- if ((lambda > 0.0f) && (sqsize_ac > brush->draw_pxdensity)) {
+ if ((lambda > 0.0f) && (sqsize_ac > draw_pxdensity)) {
/* blend between original and optimal smoothed coordinate */
interp_v2_v2v2(fpt, fpt, estimated_co, inf);
copy_v2int_v2float(&pt->x, fpt);
@@ -563,7 +564,7 @@ static bool gp_smooth_buffer_point(bGPdata *gpd, bGPDbrush *brush)
/* as the vectors are normalized, we can use dot product to calculate cosine */
float angle = dot_v2v2(vab, vac);
/* if the angle is minimun, means the point can be removed, so rollback one point */
- if ((angle > draw_stabangle) && (sqsize_ab < brush->draw_pxdensity * 3.0f)) {
+ if ((angle > draw_stabangle) && (sqsize_ab < draw_pxdensity * 3.0f)) {
ptb->x = pt->x;
ptb->y = pt->y;
ptb->pressure = pt->pressure;
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 0234e50ab95..1d1619ec493 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -42,7 +42,7 @@ struct GHash;
#define GP_OBGPENCIL_DEFAULT_SIZE 0.2f
#define GP_DEFAULT_PIX_FACTOR 500
-#define GP_MIN_STROKE_SEGMENT_PX 60.0f
+#define GP_MIN_STROKE_SEGMENT_PX 8.0f
#define GP_MIN_STROKE_SEGMENT_ANGLE 0.005f
/* ***************************************** */
diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c
index 96603866d3b..6778dc4f8ef 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -2334,7 +2334,7 @@ static void rna_def_gpencil_brush(BlenderRNA *brna)
/* maximum distance between control points for new strokes while drawing */
prop = RNA_def_property(srna, "pen_density", PROP_INT, PROP_PIXEL);
RNA_def_property_int_sdna(prop, NULL, "draw_pxdensity");
- RNA_def_property_range(prop, 1, 2000);
+ RNA_def_property_range(prop, 1, 500);
RNA_def_property_int_default(prop, GP_MIN_STROKE_SEGMENT_PX);
RNA_def_property_ui_text(prop, "Density",
"Maximum space in pixels between control points while drawing");
More information about the Bf-blender-cvs
mailing list