Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2021-03-16 18:32:56 +0300
committerJacques Lucke <jacques@blender.org>2021-03-16 18:32:56 +0300
commit8212697830dfa651803005a3c309182a9241887c (patch)
tree3388becf819e71724386eae13c5342b123512c92
parentffa0420ae7aa4594e4e03719c5485ab79e4ceb62 (diff)
support default weighttemp-asset-tools-prototype
-rw-r--r--release/scripts/startup/bl_ui/space_node.py4
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py11
-rw-r--r--source/blender/makesdna/DNA_node_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c4
4 files changed, 17 insertions, 4 deletions
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)