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. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs