[Bf-blender-cvs] [8212697830d] temp-asset-tools-prototype: support default weight

Jacques Lucke noreply at git.blender.org
Tue Mar 16 16:33:03 CET 2021


Commit: 8212697830dfa651803005a3c309182a9241887c
Author: Jacques Lucke
Date:   Tue Mar 16 16:32:56 2021 +0100
Branches: temp-asset-tools-prototype
https://developer.blender.org/rB8212697830dfa651803005a3c309182a9241887c

support default weight

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

M	release/scripts/startup/bl_ui/space_node.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/makesdna/DNA_node_types.h
M	source/blender/makesrna/intern/rna_nodetree.c

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

diff --git a/release/scripts/startup/bl_ui/space_node.py b/release/scripts/startup/bl_ui/space_node.py
index 3c77179a094..8d956c1fd00 100644
--- a/release/scripts/startup/bl_ui/space_node.py
+++ b/release/scripts/startup/bl_ui/space_node.py
@@ -717,7 +717,9 @@ class NODE_PT_asset_tools(Panel):
         layout.operator("node.asset_tool_add", text="Add Asset Tool")
 
         for asset_tool in ntree.asset_tools:
-            layout.prop(asset_tool, "weight_group_name", text="")
+            col = layout.column(align=True)
+            col.prop(asset_tool, "weight_group_name", text="")
+            col.prop(asset_tool, "default_weight", text="")
 
 
 class NODE_OT_asset_tool_add(bpy.types.Operator):
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 8d2abbff79a..178a42ee8ef 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -7523,6 +7523,7 @@ class VIEW3D_PT_asset_tools(Panel):
                 group_name = asset_tool.weight_group_name
                 props = layout.operator("asset.setup_weight_paint_tool", text=group_name)
                 props.vertex_group_name = group_name
+                props.default_weight = asset_tool.default_weight
             for socket in node_group.inputs[1:]:
                 layout.prop(modifier, f'["{socket.identifier}"]', text=socket.name)
 
@@ -7534,6 +7535,7 @@ class ASSET_OT_setup_weight_paint_tool(bpy.types.Operator):
     bl_description = "Setup weight paint tool"
 
     vertex_group_name: bpy.props.StringProperty()
+    default_weight: bpy.props.FloatProperty(default=1.0)
 
     @classmethod
     def poll(cls, context):
@@ -7542,13 +7544,16 @@ class ASSET_OT_setup_weight_paint_tool(bpy.types.Operator):
     def execute(self, context):
         ob = context.active_object
 
+        if ob.mode != 'WEIGHT_PAINT':
+            bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
+
         name = self.vertex_group_name
         if not name in ob.vertex_groups:
-            ob.vertex_groups.new(name=name)
+            group = ob.vertex_groups.new(name=name)
+            group.add(list(range(len(ob.data.vertices))), self.default_weight, 'REPLACE')
+
         ob.vertex_groups.active = ob.vertex_groups[name]
 
-        if ob.mode != 'WEIGHT_PAINT':
-            bpy.ops.object.mode_set(mode='WEIGHT_PAINT')
         return {'FINISHED'}
 
 
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h
index ef8231c116b..ae0ac054671 100644
--- a/source/blender/makesdna/DNA_node_types.h
+++ b/source/blender/makesdna/DNA_node_types.h
@@ -545,6 +545,8 @@ typedef struct AssetTool {
   struct AssetTool *prev;
 
   char weight_group_name[64];
+  float default_weight;
+  char _pad[4];
 } AssetTool;
 
 /* socket value structs for input buttons
diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c
index 0418cf3e2c3..cbc5a8cfc0d 100644
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@ -10993,6 +10993,10 @@ static void rna_def_asset_tool(BlenderRNA *brna)
 
   prop = RNA_def_property(srna, "weight_group_name", PROP_STRING, PROP_NONE);
   RNA_def_property_ui_text(prop, "Weight Group Name", "Name of a vertex group");
+
+  prop = RNA_def_property(srna, "default_weight", PROP_FLOAT, PROP_NONE);
+  RNA_def_property_ui_text(prop, "Default Weight", "");
+  RNA_def_property_ui_range(prop, 0.0, 1.0f, 0.1, 4);
 }
 
 static void rna_def_asset_tool_group(BlenderRNA *brna)



More information about the Bf-blender-cvs mailing list