[Bf-blender-cvs] [966f02a8cf9] sculpt-mode-features: Mask filter: add auto iteration count for pie menu

Pablo Dobarro noreply at git.blender.org
Mon Aug 5 15:41:08 CEST 2019


Commit: 966f02a8cf99f6f138cd1424eb8b6e93dc32969a
Author: Pablo Dobarro
Date:   Mon Aug 5 15:41:41 2019 +0200
Branches: sculpt-mode-features
https://developer.blender.org/rB966f02a8cf99f6f138cd1424eb8b6e93dc32969a

Mask filter: add auto iteration count for pie menu

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

M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/editors/sculpt_paint/sculpt.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 45e5e8ddbbe..3bfeadf9363 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -4792,12 +4792,22 @@ class VIEW3D_MT_sculpt_mask_edit_pie(Menu):
 
         pie.operator("object.paint_mask_extract")
         pie.operator("sculpt.mask_expand")
-        pie.operator("paint.mask_flood_fill", text='Invert Mask').mode = 'INVERT'
-        pie.operator("paint.mask_flood_fill", text='Clear Mask').mode = 'VALUE'
-        pie.operator("sculpt.mask_filter", text='Blur Mask').type = 'BLUR'
-        pie.operator("sculpt.mask_filter", text='Grow Mask').type = 'GROW'
-        pie.operator("sculpt.mask_filter", text='Sharpen Mask').type = 'SHARPEN'
-        pie.operator("sculpt.mask_filter", text='Shrink Mask').type = 'SHRINK'
+        op = pie.operator("paint.mask_flood_fill", text='Invert Mask')
+        op.mode = 'INVERT'
+        op = pie.operator("paint.mask_flood_fill", text='Clear Mask')
+        op.mode = 'VALUE'
+        op = pie.operator("sculpt.mask_filter", text='Blur Mask')
+        op.type = 'BLUR'
+        op.auto_iteration_count = True;
+        op = pie.operator("sculpt.mask_filter", text='Grow Mask')
+        op.type = 'GROW'
+        op.auto_iteration_count = True;
+        op = pie.operator("sculpt.mask_filter", text='Sharpen Mask')
+        op.type = 'SHARPEN'
+        op.auto_iteration_count = True;
+        op = pie.operator("sculpt.mask_filter", text='Shrink Mask')
+        op.type = 'SHRINK'
+        op.auto_iteration_count = True;
 
 
 # ********** Panel **********
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index 18d2beb2c2a..5e211e22260 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -8714,6 +8714,10 @@ static int sculpt_mask_filter_invoke(bContext *C, wmOperator *op)
     sculpt_undo_push_node(ob, nodes[i], SCULPT_UNDO_MASK);
   }
 
+  if (RNA_boolean_get(op->ptr, "auto_iteration_count")) {
+    iterations = (sculpt_vertex_count_get(ss) / 50000.0f) + 1;
+  }
+
   if (mode == MASK_FILTER_DIRTY) {
     iterations = 1;
   }
@@ -8808,6 +8812,7 @@ void SCULPT_OT_mask_filter(struct wmOperatorType *ot)
   ot->prop = RNA_def_enum(ot->srna, "type", prop_mask_filter_types, MASK_FILTER_BLUR, "Type", "");
   ot->prop = RNA_def_int(ot->srna, "iterations", 1, 1, 100, "Iterations", "", 1, 50);
   ot->prop = RNA_def_boolean(ot->srna, "dirty_only", false, "Dirty Only", "");
+  ot->prop = RNA_def_boolean(ot->srna, "auto_iteration_count", false, "Auto iteration count", "");
 }
 
 static void do_color_fill_task_cb(void *__restrict userdata,



More information about the Bf-blender-cvs mailing list