[Bf-blender-cvs] [dd9995e9859] greasepencil-object: GPencil: Remove Active Subdivide parameter from Brush

Antonio Vazquez noreply at git.blender.org
Thu Oct 3 12:48:22 CEST 2019


Commit: dd9995e9859af41f57bbea0c951742bd228b84a9
Author: Antonio Vazquez
Date:   Thu Oct 3 12:48:07 2019 +0200
Branches: greasepencil-object
https://developer.blender.org/rBdd9995e9859af41f57bbea0c951742bd228b84a9

GPencil: Remove Active Subdivide parameter from Brush

This parameter is not required with the last changes in paint smooth.

===================================================================

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/editors/gpencil/gpencil_paint.c
M	source/blender/makesdna/DNA_brush_types.h
M	source/blender/makesdna/DNA_gpencil_types.h
M	source/blender/makesrna/intern/rna_brush.c

===================================================================

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 0c5ca8be392..bac6004f7a9 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -1905,7 +1905,6 @@ class VIEW3D_PT_tools_grease_pencil_brush_option(View3DPanel, Panel):
 
             col.prop(gp_settings, "pen_smart_smooth_factor")
             col.prop(gp_settings, "active_smooth_factor")
-            col.prop(gp_settings, "active_subdivide_steps")
             col.separator()
 
             col.prop(gp_settings, "angle", slider=True)
diff --git a/source/blender/editors/gpencil/gpencil_paint.c b/source/blender/editors/gpencil/gpencil_paint.c
index 7f539b23d6d..f2a96fd11da 100644
--- a/source/blender/editors/gpencil/gpencil_paint.c
+++ b/source/blender/editors/gpencil/gpencil_paint.c
@@ -778,54 +778,6 @@ static void gp_smooth_fake_events(tGPsdata *p, int size_before, int size_after)
   }
 }
 
-/* Apply subdivide to buffer while drawing
- *
- * \param p: Temp data
- * \param step: Number of steps
- */
-static void gp_subdivide_buffer(tGPsdata *p, int step)
-{
-  bGPdata *gpd = p->gpd;
-  const int idx = gpd->runtime.sbuffer_used - 1;
-
-  /* Do nothing if not enough points to subdivide out */
-  if (gpd->runtime.sbuffer_used < 2) {
-    return;
-  }
-
-  /* Increase used points. */
-  gpd->runtime.sbuffer_used += step;
-
-  /* check if still room in buffer or add more */
-  gpd->runtime.sbuffer = ED_gpencil_sbuffer_ensure(
-      gpd->runtime.sbuffer, &gpd->runtime.sbuffer_size, &gpd->runtime.sbuffer_used, false);
-
-  tGPspoint *pt_prev = ((tGPspoint *)(gpd->runtime.sbuffer) + idx - 1);
-  tGPspoint *pt_cur = ((tGPspoint *)(gpd->runtime.sbuffer) + idx);
-
-  /* Copy values of current point to last point. */
-  tGPspoint *pt_last = ((tGPspoint *)(gpd->runtime.sbuffer) + idx + step);
-  copy_v2_v2(&pt_last->x, &pt_cur->x);
-  pt_last->pressure = pt_cur->pressure;
-  pt_last->strength = pt_cur->strength;
-  pt_last->time = pt_cur->time;
-  pt_last->uv_fac = pt_cur->uv_fac;
-  pt_last->uv_rot = pt_cur->uv_fac;
-
-  /* Interpolate points in the midle. */
-  float const ifactor = 1.0f / (float)(step);
-  for (int i = 0; i < step; i++) {
-    pt_cur = ((tGPspoint *)(gpd->runtime.sbuffer) + idx + i);
-    float f = ifactor * (i + 1);
-    interp_v2_v2v2(&pt_cur->x, &pt_prev->x, &pt_last->x, f);
-    pt_cur->pressure = interpf(pt_prev->pressure, pt_last->pressure, f);
-    pt_cur->strength = interpf(pt_prev->strength, pt_last->strength, f);
-    pt_cur->time = interpf(pt_prev->time, pt_last->time, f);
-    pt_cur->uv_fac = interpf(pt_prev->uv_fac, pt_last->uv_fac, f);
-    pt_cur->uv_rot = interpf(pt_prev->uv_rot, pt_last->uv_rot, f);
-  }
-}
-
 /* add current stroke-point to buffer (returns whether point was successfully added) */
 static short gp_stroke_addpoint(
     tGPsdata *p, const float mval[2], float pressure, double curtime, bool is_fake)
@@ -1013,21 +965,6 @@ static short gp_stroke_addpoint(
     /* increment counters */
     gpd->runtime.sbuffer_used++;
 
-    /* Subdivide while drawing two last points (current and previous). */
-    if ((brush->gpencil_settings->active_subdivide > 0) && (gpd->runtime.sbuffer_used > 1)) {
-      const int idx = gpd->runtime.sbuffer_used - 1;
-      tGPspoint *pt_prev = ((tGPspoint *)(gpd->runtime.sbuffer) + idx - 1);
-      tGPspoint *pt_cur = ((tGPspoint *)(gpd->runtime.sbuffer) + idx);
-      /* Calc distance to determine how many subdivisions. */
-      float dist = len_v2v2(&pt_prev->x, &pt_cur->x);
-      const float segment_dist = GP_MAX_ACTIVE_SUBDIV - brush->gpencil_settings->active_subdivide +
-                                 1;
-      if (dist > segment_dist) {
-        float steps = (dist / segment_dist) + 1.0f;
-        CLAMP_MIN(steps, 1.0f);
-        gp_subdivide_buffer(p, (int)steps);
-      }
-    }
     /* Smooth while drawing previous points with a reduction factor for previous. */
     if (brush->gpencil_settings->active_smooth > 0.0f) {
       for (int s = 0; s < 3; s++) {
diff --git a/source/blender/makesdna/DNA_brush_types.h b/source/blender/makesdna/DNA_brush_types.h
index 86fecaff1aa..e27f9bb8276 100644
--- a/source/blender/makesdna/DNA_brush_types.h
+++ b/source/blender/makesdna/DNA_brush_types.h
@@ -83,8 +83,7 @@ typedef struct BrushGpencilSettings {
   short fill_leak;
   /** Fill zoom factor */
   short fill_factor;
-  /** Subdivide while drawing factor. */
-  int active_subdivide;
+  char _pad1[4];
 
   /** Number of simplify steps. */
   int fill_simplylvl;
@@ -517,7 +516,7 @@ typedef enum eBrushUVSculptTool {
         SCULPT_TOOL_ELASTIC_DEFORM, \
         SCULPT_TOOL_POSE, \
 \
-        /* These brushes could handle dynamic topology, \ \ \
+        /* These brushes could handle dynamic topology, \ \ \ \
          * but user feedback indicates it's better not to */ \
         SCULPT_TOOL_SMOOTH, \
         SCULPT_TOOL_MASK) == 0)
diff --git a/source/blender/makesdna/DNA_gpencil_types.h b/source/blender/makesdna/DNA_gpencil_types.h
index 59b0bc939b1..879bfaa8404 100644
--- a/source/blender/makesdna/DNA_gpencil_types.h
+++ b/source/blender/makesdna/DNA_gpencil_types.h
@@ -35,7 +35,6 @@ struct MDeformVert;
 #define GP_DEFAULT_PIX_FACTOR 1.0f
 #define GP_DEFAULT_GRID_LINES 4
 #define GP_MAX_INPUT_SAMPLES 10
-#define GP_MAX_ACTIVE_SUBDIV 20
 
 /* ***************************************** */
 /* GP Stroke Points */
diff --git a/source/blender/makesrna/intern/rna_brush.c b/source/blender/makesrna/intern/rna_brush.c
index 0d26fbe8ab1..f99e88344bf 100644
--- a/source/blender/makesrna/intern/rna_brush.c
+++ b/source/blender/makesrna/intern/rna_brush.c
@@ -1302,14 +1302,6 @@ static void rna_def_gpencil_options(BlenderRNA *brna)
   RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
   RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
 
-  /* active subdivide factor while drawing */
-  prop = RNA_def_property(srna, "active_subdivide_steps", PROP_INT, PROP_FACTOR);
-  RNA_def_property_int_sdna(prop, NULL, "active_subdivide");
-  RNA_def_property_range(prop, 0, GP_MAX_ACTIVE_SUBDIV);
-  RNA_def_property_ui_text(prop, "Active Subdivide", "Amount of subdividing while drawing");
-  RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
-  RNA_def_property_update(prop, NC_GPENCIL | ND_DATA, NULL);
-
   prop = RNA_def_property(srna, "eraser_strength_factor", PROP_FLOAT, PROP_PERCENTAGE);
   RNA_def_property_float_sdna(prop, NULL, "era_strength_f");
   RNA_def_property_range(prop, 0.0, 100.0);



More information about the Bf-blender-cvs mailing list