[Bf-blender-cvs] [432fa09d6f9] temp-sculpt-cavity-mask: temp-sculpt-cavity-mask: Make requested changes
Joseph Eagar
noreply at git.blender.org
Fri Sep 23 03:38:45 CEST 2022
Commit: 432fa09d6f94645e8cf4c16ce46226c77f403519
Author: Joseph Eagar
Date: Thu Sep 22 17:00:12 2022 -0700
Branches: temp-sculpt-cavity-mask
https://developer.blender.org/rB432fa09d6f94645e8cf4c16ce46226c77f403519
temp-sculpt-cavity-mask: Make requested changes
* Brush now has its own cavity mask settings
- I modified the UI a bit to make it clearer when
a brush automasking setting is overriding a scene one.
* Merge remote-tracking branch 'origin' into temp-sculpt-cavity-mask
===================================================================
===================================================================
diff --cc release/scripts/addons
index 7a8502871c3,67f1fbca148..3908254f093
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 7a8502871c34db0343cc7de52d6b49b15a84238a
-Subproject commit 67f1fbca1482d9d9362a4001332e785c3fd5d230
++Subproject commit 3908254f0938a3c4c29189a455c8e356771e6ce1
diff --cc release/scripts/startup/bl_ui/properties_paint_common.py
index 953d8c33fdb,9b1cf11f6e7..a68b3e208fc
--- a/release/scripts/startup/bl_ui/properties_paint_common.py
+++ b/release/scripts/startup/bl_ui/properties_paint_common.py
@@@ -943,21 -943,6 +943,19 @@@ def brush_settings_advanced(layout, con
# boundary edges/face sets automasking
col.prop(brush, "use_automasking_boundary_edges", text="Mesh Boundary")
col.prop(brush, "use_automasking_boundary_face_sets", text="Face Sets Boundary")
+ col.prop(brush, "use_automasking_cavity", text="Cavity")
+ col.prop(brush, "use_automasking_cavity_inverted", text="Cavity (Inverted)")
+
+ col.separator()
+
+ if brush.use_automasking_cavity or brush.use_automasking_cavity_inverted:
- sculpt = context.tool_settings.sculpt
++ col.prop(brush, "automasking_cavity_factor", text="Cavity Factor")
++ col.prop(brush, "automasking_cavity_blur_steps", text="Cavity Blur")
++ col.prop(brush, "use_automasking_custom_cavity_curve", text="Use Curve")
+
- col.prop(sculpt, "automasking_cavity_factor", text="Cavity Factor")
- col.prop(sculpt, "automasking_cavity_blur_steps", text="Cavity Blur")
- 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")
++ if brush.use_automasking_custom_cavity_curve:
++ col.template_curve_mapping(brush, "automasking_cavity_curve")
+
col.prop(brush, "automasking_boundary_edges_propagation_steps")
layout.separator()
diff --cc release/scripts/startup/bl_ui/space_view3d.py
index 5f3ea41d850,a687f3c937f..2311532535c
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@@ -5491,12 -5489,10 +5490,22 @@@ class VIEW3D_MT_sculpt_automasking_pie(
tool_settings = context.tool_settings
sculpt = tool_settings.sculpt
-- pie.prop(sculpt, "use_automasking_topology", text="Topology")
-- pie.prop(sculpt, "use_automasking_face_sets", text="Face Sets")
-- pie.prop(sculpt, "use_automasking_boundary_edges", text="Mesh Boundary")
-- pie.prop(sculpt, "use_automasking_boundary_face_sets", text="Face Sets Boundary")
- pie.prop(sculpt, "use_automasking_cavity", text="Cavity")
- pie.prop(sculpt, "use_automasking_cavity_inverted", text="Cavity (Inverted)")
++ def doprop(key, text):
++ if sculpt.brush and getattr(sculpt.brush, key):
++ pie.prop(sculpt, key, text=text + "(overridden by brush)")
++ else:
++ pie.prop(sculpt, key, text=text)
++
++ doprop("use_automasking_topology", "Topology")
++ doprop("use_automasking_topology", "Topology")
++ doprop("use_automasking_face_sets", "Face Sets")
++ doprop("use_automasking_boundary_edges", "Mesh Boundary")
++ doprop("use_automasking_boundary_face_sets", "Face Sets Boundary")
++
++ if sculpt.brush and (sculpt.brush.use_automasking_cavity or sculpt.brush.use_automasking_cavity_inverted):
++ pie.prop(sculpt, "use_automasking_cavity", text="Cavity (overridden by brush)")
++ else:
++ pie.prop(sculpt, "use_automasking_cavity", text="Cavity")
class VIEW3D_MT_sculpt_face_sets_edit_pie(Menu):
diff --cc release/scripts/startup/bl_ui/space_view3d_toolbar.py
index aa121112eb6,ecc72e1bbb8..8ff03ae5a84
--- a/release/scripts/startup/bl_ui/space_view3d_toolbar.py
+++ b/release/scripts/startup/bl_ui/space_view3d_toolbar.py
@@@ -966,25 -967,10 +966,40 @@@ class VIEW3D_PT_sculpt_options(Panel, V
col.separator()
col = layout.column(heading="Auto-Masking", align=True)
-- col.prop(sculpt, "use_automasking_topology", text="Topology")
-- col.prop(sculpt, "use_automasking_face_sets", text="Face Sets")
-- col.prop(sculpt, "use_automasking_boundary_edges", text="Mesh Boundary")
-- col.prop(sculpt, "use_automasking_boundary_face_sets", text="Face Sets Boundary")
- col.prop(sculpt, "use_automasking_cavity", text="Cavity")
- col.prop(sculpt, "use_automasking_cavity_inverted", text="Cavity (Inverted)")
++
++ def doprop(key, text):
++ col2 = col.column()
++ col2.enabled = not sculpt.brush or not getattr(sculpt.brush, key)
++
++ if not col2.enabled:
++ text += " - overridden by brush"
++ col2.prop(sculpt, key, text=text)
++
++ doprop("use_automasking_topology", "Topology")
++ doprop("use_automasking_face_sets", "Face Sets")
++ doprop("use_automasking_boundary_edges", "Mesh Boundary")
++ doprop("use_automasking_boundary_face_sets", "Face Sets Boundary")
++ doprop("use_automasking_cavity", "Cavity")
++ doprop("use_automasking_cavity_inverted", "Cavity (Inverted)")
+
+ col.separator()
+
+ if sculpt.use_automasking_cavity or sculpt.use_automasking_cavity_inverted:
- col.prop(sculpt, "automasking_cavity_factor", text="Cavity Factor")
- col.prop(sculpt, "automasking_cavity_blur_steps", text="Cavity Blur")
++ col2 = col.column()
++ col2.enabled = not (sculpt.brush and sculpt.brush.use_automasking_cavity or sculpt.brush.use_automasking_cavity_inverted)
++
++ if not col2.enabled:
++ col2.label(text="Overridden by brush")
++
++ col2.prop(sculpt, "automasking_cavity_factor", text="Cavity Factor")
++ col2.prop(sculpt, "automasking_cavity_blur_steps", text="Cavity Blur")
+
- col.prop(sculpt, "use_automasking_custom_cavity_curve", text="Use Curve")
++ col2.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")
++ col2.template_curve_mapping(sculpt, "automasking_cavity_curve")
+
- col.prop(sculpt.brush, "automasking_boundary_edges_propagation_steps")
++ col2.prop(sculpt.brush, "automasking_boundary_edges_propagation_steps")
class VIEW3D_PT_sculpt_options_gravity(Panel, View3DPaintPanel):
diff --cc source/blender/blenkernel/BKE_paint.h
index 7612c6ca7ca,ed0969a6306..c41f5f68c17
--- a/source/blender/blenkernel/BKE_paint.h
+++ b/source/blender/blenkernel/BKE_paint.h
@@@ -781,7 -900,6 +909,8 @@@ bool BKE_paint_canvas_image_get(struct
struct ImageUser **r_image_user);
int BKE_paint_canvas_uvmap_layer_index_get(const struct PaintModeSettings *settings,
struct Object *ob);
+void BKE_sculpt_check_cavity_curves(struct Sculpt *sd);
++struct CurveMapping *BKE_sculpt_default_cavity_curve();
#ifdef __cplusplus
}
diff --cc source/blender/blenkernel/intern/brush.cc
index 597b5ea17fa,a998fc0a75f..7ab8088823b
--- a/source/blender/blenkernel/intern/brush.cc
+++ b/source/blender/blenkernel/intern/brush.cc
@@@ -72,6 -72,6 +72,8 @@@ static void brush_copy_data(Main *UNUSE
}
brush_dst->curve = BKE_curvemapping_copy(brush_src->curve);
++ brush_dst->automasking_cavity_curve = BKE_curvemapping_copy(brush_src->automasking_cavity_curve);
++
if (brush_src->gpencil_settings != nullptr) {
brush_dst->gpencil_settings = MEM_cnew(__func__, *(brush_src->gpencil_settings));
brush_dst->gpencil_settings->curve_sensitivity = BKE_curvemapping_copy(
@@@ -109,6 -109,6 +111,7 @@@ static void brush_free_data(ID *id
IMB_freeImBuf(brush->icon_imbuf);
}
BKE_curvemapping_free(brush->curve);
++ BKE_curvemapping_free(brush->automasking_cavity_curve);
if (brush->gpencil_settings != nullptr) {
BKE_curvemapping_free(brush->gpencil_settings->curve_sensitivity);
@@@ -212,6 -212,6 +215,10 @@@ static void brush_blend_write(BlendWrit
BKE_curvemapping_blend_write(writer, brush->curve);
}
++ if (brush->automasking_cavity_curve) {
++ BKE_curvemapping_blend_write(writer, brush->automasking_cavity_curve);
++ }
++
if (brush->gpencil_settings) {
BLO_write_struct(writer, BrushGpencilSettings, brush->gpencil_settings);
@@@ -267,6 -267,6 +274,14 @@@ static void brush_blend_read_data(Blend
BKE_brush_curve_preset(brush, CURVE_PRESET_SHARP);
}
++ BLO_read_data_address(reader, &brush->automasking_cavity_curve);
++ if (brush->automasking_cavity_curve) {
++ BKE_curvemapping_blend_read(reader, brush->automasking_cavity_curve);
++ }
++ else {
++ brush->automasking_cavity_curve = BKE_sculpt_default_cavity_curve();
++ }
++
/* grease pencil */
BLO_read_data_address(reader, &brush->gpencil_settings);
if (brush->gpencil_settings != nullptr) {
diff --cc source/blender/blenkernel/intern/scene.cc
index 510b4cff194,9c0e5a5534e..2c9bedd6cc2
--- a/source/blender/blenkernel/intern/scene.cc
+++ b/source/blender/blenkernel/intern/scene.cc
@@@ -114,32 -114,6 +114,32 @@@
#include "bmesh.h"
- static CurveMapping *sculpt_init_cavity_curves()
++CurveMapping *BKE_sculpt_default_cavity_curve()
+
+{
+ CurveMapping *cumap = BKE_curvemapping_add(1, 0, 0, 1, 1);
+
+ cumap->flag &= ~CUMA_EXTEND_EXTRAPOLATE;
+ cumap->preset = CURVE_PRESET_LINE;
+
+ BKE_curvemap_reset(cumap->cm, &cumap->clipr, cumap->preset, CURVEMAP_SLOPE_POSITIVE);
+ BKE_curvemapping_changed(cumap, false);
+ BKE_curvemapping_init(cumap);
+
+ return cumap;
+}
+
+void BKE_sculpt_check_cavity_curves(Sculpt *sd)
+{
+ if (!sd->automasking_cavity_curve) {
- sd->automasking_cavity_curve = sculpt_init_cavity_curves();
++ sd->automasking_cavity_curve = BKE_sculpt_de
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list