[Bf-blender-cvs] [29344fca445] modifier-panels-ui: Update Decimate, Solidify and Surface Deform layouts.
William Reynish
noreply at git.blender.org
Sun Apr 5 18:18:06 CEST 2020
Commit: 29344fca445983cb335df8e0736509c4f0f2312c
Author: William Reynish
Date: Sun Apr 5 18:17:19 2020 +0200
Branches: modifier-panels-ui
https://developer.blender.org/rB29344fca445983cb335df8e0736509c4f0f2312c
Update Decimate, Solidify and Surface Deform layouts.
===================================================================
M source/blender/modifiers/intern/MOD_decimate.c
M source/blender/modifiers/intern/MOD_solidify.c
M source/blender/modifiers/intern/MOD_surfacedeform.c
===================================================================
diff --git a/source/blender/modifiers/intern/MOD_decimate.c b/source/blender/modifiers/intern/MOD_decimate.c
index a5058ff0a3d..0fc523a77c1 100644
--- a/source/blender/modifiers/intern/MOD_decimate.c
+++ b/source/blender/modifiers/intern/MOD_decimate.c
@@ -248,15 +248,14 @@ static void panel_draw(const bContext *C, Panel *panel)
if (decimate_type == MOD_DECIM_MODE_COLLAPSE) {
uiItemR(layout, &ptr, "ratio", UI_ITEM_R_SLIDER, NULL, ICON_NONE);
+ uiItemR(layout, &ptr, "use_collapse_triangulate", 0, NULL, ICON_NONE);
+
row = uiLayoutRow(layout, true);
uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", NULL, ICON_NONE);
sub = uiLayoutColumn(row, true);
+ uiLayoutSetPropDecorate(sub, false);
uiLayoutSetActive(sub, has_vertex_group);
uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT);
-
- uiItemR(layout, &ptr, "use_collapse_triangulate", 0, NULL, ICON_NONE);
- uiItemR(layout, &ptr, "use_symmetry", 0, NULL, ICON_NONE);
- uiItemR(layout, &ptr, "symmetry_axis", UI_ITEM_R_EXPAND, IFACE_("Symmetry Axis"), ICON_NONE);
}
else if (decimate_type == MOD_DECIM_MODE_UNSUBDIV) {
uiItemR(layout, &ptr, "iterations", 0, NULL, ICON_NONE);
@@ -271,9 +270,47 @@ static void panel_draw(const bContext *C, Panel *panel)
modifier_panel_end(layout, &ptr);
}
+static void decimate_symmetry_panel_header_draw(const bContext *C, Panel *panel)
+{
+ uiLayout *layout = panel->layout;
+
+ PointerRNA ptr;
+ modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+ int decimate_type = RNA_enum_get(&ptr, "decimate_type");
+
+ uiLayoutSetActive(layout, decimate_type == MOD_DECIM_MODE_COLLAPSE);
+
+ uiItemR(layout, &ptr, "use_symmetry", 0, IFACE_("Symmetry"), ICON_NONE);
+}
+
+static void decimate_symmetry_panel_draw(const bContext *C, Panel *panel)
+{
+ uiLayout *layout = panel->layout;
+
+ PointerRNA ptr;
+ modifier_panel_get_property_pointers(C, panel, NULL, &ptr);
+
+ int decimate_type = RNA_enum_get(&ptr, "decimate_type");
+
+ uiLayoutSetPropSep(layout, true);
+
+ uiLayoutSetActive(layout, decimate_type == MOD_DECIM_MODE_COLLAPSE);
+
+ uiLayout *row = uiLayoutRow(layout, false);
+ uiLayoutSetActive(row, RNA_boolean_get(&ptr, "use_symmetry"));
+ uiItemR(row, &ptr, "symmetry_axis", UI_ITEM_R_EXPAND, IFACE_("Symmetry Axis"), ICON_NONE);
+}
+
static void panelRegister(ARegionType *region_type)
{
- modifier_panel_register(region_type, "Decimate", panel_draw);
+ PanelType *panel_type = modifier_panel_register(region_type, "Decimate", panel_draw);
+ modifier_subpanel_register(region_type,
+ "array_merge",
+ "",
+ decimate_symmetry_panel_header_draw,
+ decimate_symmetry_panel_draw,
+ panel_type);
}
ModifierTypeInfo modifierType_Decimate = {
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index b4ec01f8f79..134ac58cc54 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -97,7 +97,7 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *ctx, Mes
static void panel_draw(const bContext *C, Panel *panel)
{
- uiLayout *sub, *row, *col, *split;
+ uiLayout *sub, *row, *col, *flow;
uiLayout *layout = panel->layout;
PointerRNA ptr;
@@ -106,10 +106,11 @@ static void panel_draw(const bContext *C, Panel *panel)
modifier_panel_buttons(C, panel);
int solidify_mode = RNA_enum_get(&ptr, "solidify_mode");
-
bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0;
- row = uiLayoutRow(layout, false);
- uiItemR(row, &ptr, "solidify_mode", 0, NULL, ICON_NONE);
+
+ uiLayoutSetPropSep(layout, true);
+
+ uiItemR(layout, &ptr, "solidify_mode", 0, NULL, ICON_NONE);
if (solidify_mode == MOD_SOLIDIFY_MODE_NONMANIFOLD) {
uiItemR(layout, &ptr, "nonmanifold_thickness_mode", 0, IFACE_("Thickness"), ICON_NONE);
@@ -119,40 +120,52 @@ static void panel_draw(const bContext *C, Panel *panel)
uiItemR(layout, &ptr, "thickness", 0, NULL, ICON_NONE);
uiItemR(layout, &ptr, "offset", 0, NULL, ICON_NONE);
- row = uiLayoutRow(layout, true);
- uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", "", ICON_NONE);
- sub = uiLayoutRow(row, true);
- uiLayoutSetActive(sub, has_vertex_group);
- uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT);
- row = uiLayoutRow(layout, false);
- uiLayoutSetActive(row, has_vertex_group);
- uiItemR(row, &ptr, "thickness_vertex_group", 0, IFACE_("Factor"), ICON_NONE);
-
- split = uiLayoutSplit(layout, 0.5f, false);
- col = uiLayoutColumn(split, true);
+ flow = uiLayoutGridFlow(layout, true, 0, true, false, false);
+ col = uiLayoutColumn(flow, false);
uiItemR(col, &ptr, "use_flip_normals", 0, NULL, ICON_NONE);
if (solidify_mode == MOD_SOLIDIFY_MODE_EXTRUDE) {
uiItemR(col, &ptr, "use_even_offset", 0, NULL, ICON_NONE);
uiItemR(col, &ptr, "use_quality_normals", 0, NULL, ICON_NONE);
}
- col = uiLayoutColumn(split, true);
+
+ col = uiLayoutColumn(flow, false);
uiItemR(col, &ptr, "use_rim", 0, NULL, ICON_NONE);
sub = uiLayoutColumn(col, false);
uiLayoutSetActive(sub, RNA_boolean_get(&ptr, "use_rim"));
uiItemR(sub, &ptr, "use_rim_only", 0, NULL, ICON_NONE);
- col = uiLayoutColumn(layout, true);
- uiItemL(col, IFACE_("Material Index Offset:"), ICON_NONE);
- sub = uiLayoutColumn(col, false);
- row = uiLayoutSplit(sub, 0.4f, true);
- uiItemR(row, &ptr, "material_offset", 0, "", ICON_NONE);
- row = uiLayoutRow(row, true);
- uiLayoutSetActive(row, RNA_boolean_get(&ptr, "use_rim"));
- uiItemR(row, &ptr, "material_offset_rim", 0, IFACE_("Rim"), ICON_NONE);
+ uiItemS(layout);
+
+ row = uiLayoutRow(layout, true);
+ uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", NULL, ICON_NONE);
+ sub = uiLayoutRow(row, true);
+ uiLayoutSetPropDecorate(sub, false);
+ uiLayoutSetActive(sub, has_vertex_group);
+ uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT);
+ row = uiLayoutRow(layout, false);
+ uiLayoutSetActive(row, has_vertex_group);
+ uiItemR(row, &ptr, "thickness_vertex_group", 0, IFACE_("Factor"), ICON_NONE);
modifier_panel_end(layout, &ptr);
}
+static void solidify_materials_panel_draw(const bContext *C, Panel *panel)
+{
+ uiLayout *col;
+ uiLayout *layout = panel->layout;
+
+ PointerRNA ptr;
+ PointerRNA ob_ptr;
+ modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+
+ uiLayoutSetPropSep(layout, true);
+
+ uiItemR(layout, &ptr, "material_offset", 0, NULL, ICON_NONE);
+ col = uiLayoutColumn(layout, true);
+ uiLayoutSetActive(col, RNA_boolean_get(&ptr, "use_rim"));
+ uiItemR(col, &ptr, "material_offset_rim", 0, IFACE_("Rim"), ICON_NONE);
+}
+
static void draw_crease_panel(const bContext *C, Panel *panel)
{
uiLayout *layout = panel->layout;
@@ -163,6 +176,8 @@ static void draw_crease_panel(const bContext *C, Panel *panel)
int solidify_mode = RNA_enum_get(&ptr, "solidify_mode");
+ uiLayoutSetPropSep(layout, true);
+
uiLayoutSetActive(layout, solidify_mode == MOD_SOLIDIFY_MODE_EXTRUDE);
uiItemR(layout, &ptr, "edge_crease_inner", 0, IFACE_("Inner"), ICON_NONE);
uiItemR(layout, &ptr, "edge_crease_outer", 0, IFACE_("Outer"), ICON_NONE);
@@ -178,6 +193,8 @@ static void draw_clamp_panel(const bContext *C, Panel *panel)
PointerRNA ob_ptr;
modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+ uiLayoutSetPropSep(layout, true);
+
uiItemR(layout, &ptr, "thickness_clamp", 0, NULL, ICON_NONE);
row = uiLayoutRow(layout, false);
uiLayoutSetActive(row, RNA_float_get(&ptr, "thickness_clamp") > 0.0f);
@@ -192,6 +209,8 @@ static void draw_vertex_group_panel(const bContext *C, Panel *panel)
PointerRNA ob_ptr;
modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+ uiLayoutSetPropSep(layout, true);
+
uiItemPointerR(layout, &ptr, "shell_vertex_group", &ob_ptr, "vertex_groups", "Shell", ICON_NONE);
uiItemPointerR(layout, &ptr, "rim_vertex_group", &ob_ptr, "vertex_groups", "Rim", ICON_NONE);
}
@@ -199,6 +218,12 @@ static void draw_vertex_group_panel(const bContext *C, Panel *panel)
static void panelRegister(ARegionType *region_type)
{
PanelType *panel_type = modifier_panel_register(region_type, "Solidify", panel_draw);
+ modifier_subpanel_register(region_type,
+ "solidify_materials",
+ "Materials",
+ NULL,
+ solidify_materials_panel_draw,
+ panel_type);
modifier_subpanel_register(
region_type, "solidify_crease", "Crease", NULL, draw_crease_panel, panel_type);
modifier_subpanel_register(
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c
index 07c5e984da8..50cef8513cb 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -1407,18 +1407,22 @@ static void panel_draw(const bContext *C, Panel *panel)
bool is_bound = RNA_boolean_get(&ptr, "is_bound");
bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0;
+ uiLayoutSetPropSep(layout, true);
+
col = uiLayoutColumn(layout, false);
uiLayoutSetActive(col, !is_bound);
uiItemR(col, &ptr, "target", 0, NULL, ICON_NONE);
+
+ uiItemR(col, &ptr, "falloff", 0, NULL, ICON_NONE);
+ uiItemR(col, &ptr, "strength", 0, NULL, ICON_NONE);
+
row = uiLayoutRow(col, true);
- uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", "", ICON_NONE);
+ uiItemPointerR(row, &ptr, "vertex_group", &ob_ptr, "vertex_groups", NULL, ICON_NONE);
sub = uiLayoutRow(row, true);
+ uiLayoutSetPropDecorate(sub, false);
uiLayoutSetActive(sub, has_vertex_group);
uiItemR(sub, &ptr, "invert_vertex_group", 0, "", ICON_ARROW_LEFTRIGHT);
- uiItemR(col, &ptr, "falloff", 0, NULL, ICON_NONE);
- uiItemR(col, &ptr, "strength", 0, NULL, ICON_NONE);
-
uiItemS(layout);
col = uiLayoutColumn(layout,
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list