[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