[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