[Bf-blender-cvs] [3221187dd57] modifier-panels-ui: Add settings recently added to modifiers, tweak UI

Hans Goudey noreply at git.blender.org
Fri Apr 3 23:47:17 CEST 2020


Commit: 3221187dd57a07cb2ce24940a1bfc2adf09aceeb
Author: Hans Goudey
Date:   Thu Apr 2 15:57:07 2020 -0500
Branches: modifier-panels-ui
https://developer.blender.org/rB3221187dd57a07cb2ce24940a1bfc2adf09aceeb

Add settings recently added to modifiers, tweak UI

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

M	source/blender/modifiers/intern/MOD_remesh.c
M	source/blender/modifiers/intern/MOD_solidify.c
M	source/blender/modifiers/intern/MOD_surfacedeform.c
M	source/blender/modifiers/intern/MOD_warp.c
M	source/blender/modifiers/intern/MOD_wave.c
M	source/blender/modifiers/intern/MOD_weightvgedit.c
M	source/blender/modifiers/intern/MOD_weightvgproximity.c

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

diff --git a/source/blender/modifiers/intern/MOD_remesh.c b/source/blender/modifiers/intern/MOD_remesh.c
index 44fa3f90cd4..5e555f62c61 100644
--- a/source/blender/modifiers/intern/MOD_remesh.c
+++ b/source/blender/modifiers/intern/MOD_remesh.c
@@ -240,21 +240,28 @@ static void panel_draw(const bContext *C, Panel *panel)
   PointerRNA ob_ptr;
   modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
 
-  uiItemR(layout, &ptr, "mode", 0, NULL, ICON_NONE);
+  int mode = RNA_enum_get(&ptr, "mode");
 
-  row = uiLayoutRow(layout, false);
-  uiItemR(row, &ptr, "octree_depth", 0, NULL, ICON_NONE);
-  uiItemR(row, &ptr, "scale", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "mode", 0, NULL, ICON_NONE);
 
-  if (RNA_enum_get(&ptr, "mode") == MOD_REMESH_SHARP_FEATURES) {
-    uiItemR(layout, &ptr, "sharpness", 0, NULL, ICON_NONE);
+  if (mode == MOD_REMESH_VOXEL) {
+    uiItemR(layout, &ptr, "voxel_size", 0, NULL, ICON_NONE);
+    uiItemR(layout, &ptr, "adaptivity", 0, NULL, ICON_NONE);
   }
+  else {
+    uiItemR(layout, &ptr, "octree_depth", 0, NULL, ICON_NONE);
+    uiItemR(layout, &ptr, "scale", 0, NULL, ICON_NONE);
 
+    if (mode == MOD_REMESH_SHARP_FEATURES) {
+      uiItemR(layout, &ptr, "sharpness", 0, NULL, ICON_NONE);
+    }
+
+    uiItemR(layout, &ptr, "use_remove_disconnected", 0, NULL, ICON_NONE);
+    row = uiLayoutRow(layout, false);
+    uiLayoutSetActive(row, RNA_boolean_get(&ptr, "use_remove_disconnected"));
+    uiItemR(layout, &ptr, "threshold", 0, NULL, ICON_NONE);
+  }
   uiItemR(layout, &ptr, "use_smooth_shade", 0, NULL, ICON_NONE);
-  uiItemR(layout, &ptr, "use_remove_disconnected", 0, NULL, ICON_NONE);
-  row = uiLayoutRow(layout, false);
-  uiLayoutSetActive(row, RNA_boolean_get(&ptr, "use_remove_disconnected"));
-  uiItemR(layout, &ptr, "threshold", 0, NULL, ICON_NONE);
 
   modifier_panel_end(layout, &ptr);
 
@@ -265,7 +272,7 @@ static void panel_draw(const bContext *C, Panel *panel)
 
 static void panelRegister(ARegionType *region_type)
 {
-  PanelType *panel_type = modifier_panel_register(region_type, "Remesh", panel_draw);
+  modifier_panel_register(region_type, "Remesh", panel_draw);
 }
 
 ModifierTypeInfo modifierType_Remesh = {
diff --git a/source/blender/modifiers/intern/MOD_solidify.c b/source/blender/modifiers/intern/MOD_solidify.c
index a9bc198a028..b9c8bbb34c6 100644
--- a/source/blender/modifiers/intern/MOD_solidify.c
+++ b/source/blender/modifiers/intern/MOD_solidify.c
@@ -111,53 +111,37 @@ static void panel_draw(const bContext *C, Panel *panel)
   uiItemR(row, &ptr, "solidify_mode", 0, NULL, ICON_NONE);
 
   if (solidify_mode == MOD_SOLIDIFY_MODE_NONMANIFOLD) {
-    uiItemR(layout, &ptr, "nonmanifold_thickness_mode", 0, NULL, ICON_NONE);
-    uiItemR(layout, &ptr, "nonmanifold_boundary_mode", 0, NULL, ICON_NONE);
+    uiItemR(layout, &ptr, "nonmanifold_thickness_mode", 0, IFACE_("Thickness"), ICON_NONE);
+    uiItemR(layout, &ptr, "nonmanifold_boundary_mode", 0, IFACE_("Boundary"), ICON_NONE);
   }
 
-  split = uiLayoutSplit(layout, 0.5f, false);
-  col = uiLayoutColumn(split, false);
-  uiItemR(col, &ptr, "thickness", 0, NULL, ICON_NONE);
-  uiItemR(col, &ptr, "thickness_clamp", 0, NULL, ICON_NONE);
-  row = uiLayoutRow(col, false);
-  uiLayoutSetActive(row, RNA_float_get(&ptr, "thickness_clamp") > 0.0f);
-  uiItemR(row, &ptr, "use_thickness_angle_clamp", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "thickness", 0, NULL, ICON_NONE);
+  uiItemR(layout, &ptr, "offset", 0, NULL, ICON_NONE);
 
-  uiItemS(col);
-
-  row = uiLayoutRow(col, true);
+  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(col, false);
+  row = uiLayoutRow(layout, false);
   uiLayoutSetActive(row, has_vertex_group);
   uiItemR(row, &ptr, "thickness_vertex_group", 0, IFACE_("Factor"), ICON_NONE);
 
-  if (solidify_mode == MOD_SOLIDIFY_MODE_EXTRUDE) {
-    uiItemL(col, IFACE_("Crease:"), ICON_NONE);
-    uiItemR(col, &ptr, "edge_crease_inner", 0, IFACE_("Inner"), ICON_NONE);
-    uiItemR(col, &ptr, "edge_crease_outer", 0, IFACE_("Outer"), ICON_NONE);
-    uiItemR(col, &ptr, "edge_crease_rim", 0, IFACE_("Rim"), ICON_NONE);
-  }
-
-  col = uiLayoutColumn(split, false);
-  uiItemR(col, &ptr, "offset", 0, NULL, ICON_NONE);
+  split = uiLayoutSplit(layout, 0.5f, false);
+  col = uiLayoutColumn(split, true);
   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);
   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);
 
-  uiItemS(col);
-
+  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);
@@ -168,9 +152,63 @@ static void panel_draw(const bContext *C, Panel *panel)
   modifier_panel_end(layout, &ptr);
 }
 
+static void draw_crease_panel(const bContext *C, Panel *panel)
+{
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  PointerRNA ob_ptr;
+  modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+
+  int solidify_mode = RNA_enum_get(&ptr, "solidify_mode");
+
+  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);
+  uiItemR(layout, &ptr, "edge_crease_rim", 0, IFACE_("Rim"), ICON_NONE);
+}
+
+static void draw_clamp_panel(const bContext *C, Panel *panel)
+{
+  uiLayout *row;
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  PointerRNA ob_ptr;
+  modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+
+  uiItemR(layout, &ptr, "thickness_clamp", 0, NULL, ICON_NONE);
+  row = uiLayoutRow(layout, false);
+  uiLayoutSetActive(row, RNA_float_get(&ptr, "thickness_clamp") > 0.0f);
+  uiItemR(row, &ptr, "use_thickness_angle_clamp", 0, NULL, ICON_NONE);
+}
+
+static void draw_vertex_group_panel(const bContext *C, Panel *panel)
+{
+  uiLayout *layout = panel->layout;
+
+  PointerRNA ptr;
+  PointerRNA ob_ptr;
+  modifier_panel_get_property_pointers(C, panel, &ob_ptr, &ptr);
+
+  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);
+}
+
 static void panelRegister(ARegionType *region_type)
 {
   PanelType *panel_type = modifier_panel_register(region_type, "Solidify", panel_draw);
+  modifier_subpanel_register(
+      region_type, "solidify_crease", "Crease", NULL, draw_crease_panel, false, panel_type);
+  modifier_subpanel_register(
+      region_type, "solidify_clamp", "Clamp", NULL, draw_clamp_panel, false, panel_type);
+  modifier_subpanel_register(region_type,
+                             "solidify_vertex_groups",
+                             "Output Vertex Groups",
+                             NULL,
+                             draw_vertex_group_panel,
+                             false,
+                             panel_type);
 }
 
 ModifierTypeInfo modifierType_Solidify = {
diff --git a/source/blender/modifiers/intern/MOD_surfacedeform.c b/source/blender/modifiers/intern/MOD_surfacedeform.c
index 437e5e62e7e..ff34c28837f 100644
--- a/source/blender/modifiers/intern/MOD_surfacedeform.c
+++ b/source/blender/modifiers/intern/MOD_surfacedeform.c
@@ -1394,7 +1394,7 @@ static bool isDisabled(const Scene *UNUSED(scene), ModifierData *md, bool UNUSED
 
 static void panel_draw(const bContext *C, Panel *panel)
 {
-  uiLayout *col;
+  uiLayout *row, *col, *sub;
   uiLayout *layout = panel->layout;
 
   PointerRNA ptr;
@@ -1404,11 +1404,19 @@ static void panel_draw(const bContext *C, Panel *panel)
   PointerRNA target_ptr = RNA_pointer_get(&ptr, "target");
 
   bool is_bound = RNA_boolean_get(&ptr, "is_bound");
+  bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0;
 
   col = uiLayoutColumn(layout, false);
   uiLayoutSetActive(col, !is_bound);
   uiItemR(col, &ptr, "target", 0, NULL, ICON_NONE);
+  row = uiLayoutRow(col, 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);
+
   uiItemR(col, &ptr, "falloff", 0, NULL, ICON_NONE);
+  uiItemR(col, &ptr, "strength", 0, NULL, ICON_NONE);
 
   uiItemS(layout);
 
diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c
index 66d4ce7d7c4..d6515c826ef 100644
--- a/source/blender/modifiers/intern/MOD_warp.c
+++ b/source/blender/modifiers/intern/MOD_warp.c
@@ -412,16 +412,29 @@ static void panel_draw(const bContext *C, Panel *panel)
   bool has_vertex_group = RNA_string_length(&ptr, "vertex_group") != 0;
 
   split = uiLayoutSplit(layout, 0.5f, false);
-  col = uiLayoutColumn(split, false);
+  col = uiLayoutColumn(split, true);
   uiItemL(col, IFACE_("From:"), ICON_NONE);
   uiItemR(col, &ptr, "object_from", 0, "", ICON_NONE);
+  PointerRNA from_obj_ptr = RNA_pointer_get(&ptr, "object_from");
+  if (!RNA_pointer_is_null(&from_obj_ptr) && RNA_enum_get(&from_obj_ptr, "type") == OB_ARMATURE) {
+    uiItemL(col, IFACE_("Bone:"), ICON_NONE);
+    PointerRNA from_obj_data_ptr = RNA_pointer_get(&from_obj_ptr, "data");
+    uiItemPointerR(col, &ptr, "bone_from", &from_obj_data_ptr, "bones", "", ICON_NONE);
+  }
 
-  uiItemR(col, &ptr, "use_volume_preserve", 0, NULL, ICON_NONE);
-
-  col = uiLayoutColumn(split, false);
+  col = uiLayoutColumn(split, true);
   uiItemL(col, IFACE_("To:"), ICON_NONE);
   uiItemR(col,

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list