[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