[Bf-blender-cvs] [f5acd467619] temp-sculpt-cavity-mask: temp-sculpt-cavity-mask: UI changes

Joseph Eagar noreply at git.blender.org
Fri Sep 23 03:38:46 CEST 2022


Commit: f5acd46761961799738c487a3465d89ade843f24
Author: Joseph Eagar
Date:   Thu Sep 22 17:28:04 2022 -0700
Branches: temp-sculpt-cavity-mask
https://developer.blender.org/rBf5acd46761961799738c487a3465d89ade843f24

temp-sculpt-cavity-mask: UI changes

* Mask by cavity is no longer its own subpanel in
  the options panel, instead it's just a button
* Redo panel ui no longer shows props from automasking
  settings when use automasking settings is on.

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

M	release/scripts/startup/bl_ui/space_view3d_toolbar.py
M	source/blender/blenkernel/intern/paint.cc
M	source/blender/editors/sculpt_paint/sculpt_ops.c

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

diff --git a/release/scripts/startup/bl_ui/space_view3d_toolbar.py b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
index 8ff03ae5a84..093c98d5ec3 100644
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@ -985,6 +985,9 @@ class VIEW3D_PT_sculpt_options(Panel, View3DPaintPanel):
         col.separator()
 
         if sculpt.use_automasking_cavity or sculpt.use_automasking_cavity_inverted:
+            props = col.operator("sculpt.mask_from_cavity", text="Mask From Cavity")
+            props.use_automask_settings = True
+
             col2 = col.column()
             col2.enabled = not (sculpt.brush and sculpt.brush.use_automasking_cavity or sculpt.brush.use_automasking_cavity_inverted)
 
@@ -1025,53 +1028,6 @@ class VIEW3D_PT_sculpt_options_gravity(Panel, View3DPaintPanel):
         col.prop(sculpt, "gravity", slider=True, text="Factor")
         col.prop(sculpt, "gravity_object")
     
-class VIEW3D_PT_sculpt_cavity_bake(Panel, View3DPaintPanel):
-    bl_context = ".sculpt_mode"  # dot on purpose (access from topbar)
-    bl_label = "Mask From Cavity"
-    bl_options = {'DEFAULT_CLOSED'}
-    bl_ui_units_x = 12
-    bl_parent_id = "VIEW3D_PT_sculpt_options"
-
-    @classmethod
-    def poll(cls, context):
-        return (context.sculpt_object and context.tool_settings.sculpt)
-
-    def draw(self, context):
-        layout = self.layout
-        layout.use_property_split = True
-        layout.use_property_decorate = False
-
-        tool_settings = context.tool_settings
-        sculpt = tool_settings.sculpt
-
-        col = layout.column()
-
-        last = WindowManager.operator_properties_last("sculpt.mask_from_cavity")
-
-        col.prop(last, "mix_mode")
-        col.prop(last, "mix_factor")
-        col.prop(last, "use_automask_settings")
-
-        if not last.use_automask_settings:
-            col.prop(last, "factor", text="Factor")
-            col.prop(last, "blur_steps", text="Blur")
-            col.prop(last, "invert", text="Invert")
-            col.prop(last, "use_curve", text="Use Curve")
-
-            if last.use_curve:
-                col.template_curve_mapping(sculpt, "automasking_cavity_curve_op")
-        else:
-            col.prop(sculpt, "automasking_cavity_factor", text="Factor")
-            col.prop(sculpt, "automasking_cavity_blur_steps", text="Blur")
-            col.prop(sculpt, "use_automasking_cavity_inverted", text="Invert")
-            
-            col.prop(sculpt, "use_automasking_custom_cavity_curve", text="Use Curve")
-
-            if sculpt.use_automasking_custom_cavity_curve:
-                col.template_curve_mapping(sculpt, "automasking_cavity_curve")
-
-        layout.operator("sculpt.mask_from_cavity")
-
 # TODO, move to space_view3d.py
 class VIEW3D_PT_sculpt_symmetry(Panel, View3DPaintPanel):
     bl_context = ".sculpt_mode"  # dot on purpose (access from topbar)
@@ -2545,7 +2501,6 @@ classes = (
     VIEW3D_PT_tools_grease_pencil_brush_vertex_color,
     VIEW3D_PT_tools_grease_pencil_brush_vertex_palette,
     VIEW3D_PT_tools_grease_pencil_brush_vertex_falloff,
-    VIEW3D_PT_sculpt_cavity_bake,
 )
 
 if __name__ == "__main__":  # only for live edit.
diff --git a/source/blender/blenkernel/intern/paint.cc b/source/blender/blenkernel/intern/paint.cc
index b0f7fcbc18e..bdd851bca1d 100644
--- a/source/blender/blenkernel/intern/paint.cc
+++ b/source/blender/blenkernel/intern/paint.cc
@@ -2648,7 +2648,10 @@ SculptAttribute *BKE_sculpt_attribute_get(struct Object *ob,
   SculptAttribute *attr = sculpt_get_cached_layer(ss, domain, proptype, name);
 
   if (attr) {
-    sculpt_attr_update(ob, attr);
+    if (sculpt_attr_update(ob, attr)) {
+      sculpt_attribute_update_refs(ob);
+    }
+
     return attr;
   }
 
diff --git a/source/blender/editors/sculpt_paint/sculpt_ops.c b/source/blender/editors/sculpt_paint/sculpt_ops.c
index 49dec3a3e62..24a36df759e 100644
--- a/source/blender/editors/sculpt_paint/sculpt_ops.c
+++ b/source/blender/editors/sculpt_paint/sculpt_ops.c
@@ -1078,6 +1078,9 @@ static int sculpt_bake_cavity_exec(bContext *C, wmOperator *op)
   BKE_sculpt_update_object_for_edit(depsgraph, ob, true, true, false);
   SCULPT_vertex_random_access_ensure(ss);
 
+  MultiresModifierData *mmd = BKE_sculpt_multires_active(CTX_data_scene(C), ob);
+  BKE_sculpt_mask_layers_ensure(ob, mmd);
+
   SCULPT_undo_push_begin(ob, op);
 
   CavityBakeMixMode mode = RNA_enum_get(op->ptr, "mix_mode");
@@ -1168,8 +1171,8 @@ static void cavity_bake_ui(bContext *C, wmOperator *op)
   if (!sd || !RNA_boolean_get(op->ptr, "use_automask_settings")) {
     uiItemR(layout, op->ptr, "mix_mode", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "mix_factor", 0, NULL, ICON_NONE);
-    uiItemR(layout, op->ptr, "factor", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "use_automask_settings", 0, NULL, ICON_NONE);
+    uiItemR(layout, op->ptr, "factor", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "blur_steps", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "invert", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "use_curve", 0, NULL, ICON_NONE);
@@ -1182,11 +1185,7 @@ static void cavity_bake_ui(bContext *C, wmOperator *op)
     RNA_pointer_create(&scene->id, &RNA_Sculpt, sd, &sculpt_ptr);
     uiItemR(layout, op->ptr, "mix_mode", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "mix_factor", 0, NULL, ICON_NONE);
-    uiItemR(layout, &sculpt_ptr, "automasking_cavity_factor", 0, NULL, ICON_NONE);
     uiItemR(layout, op->ptr, "use_automask_settings", 0, NULL, ICON_NONE);
-    uiItemR(layout, &sculpt_ptr, "automasking_cavity_blur_steps", 0, NULL, ICON_NONE);
-    uiItemR(layout, &sculpt_ptr, "use_automasking_cavity_inverted", 0, NULL, ICON_NONE);
-    uiItemR(layout, &sculpt_ptr, "use_automasking_custom_cavity_curve", 0, NULL, ICON_NONE);
 
     use_curve = RNA_boolean_get(&sculpt_ptr, "use_automasking_custom_cavity_curve");
   }



More information about the Bf-blender-cvs mailing list