From 9eb0f20224f57cfbfb426de16de3d1b8a2c5207b Mon Sep 17 00:00:00 2001 From: Matt Ebb Date: Thu, 5 Nov 2009 02:50:26 +0000 Subject: [PATCH] Added mass and spring vertex groups to softbody rna/ui --- .../scripts/ui/properties_physics_softbody.py | 4 ++- .../makesrna/intern/rna_object_force.c | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/release/scripts/ui/properties_physics_softbody.py b/release/scripts/ui/properties_physics_softbody.py index 27c8e357608..f43d903d0c7 100644 --- a/release/scripts/ui/properties_physics_softbody.py +++ b/release/scripts/ui/properties_physics_softbody.py @@ -73,8 +73,9 @@ class PHYSICS_PT_softbody(PhysicButtonsPanel): col = split.column() col.itemL(text="Object:") - col.itemR(softbody, "mass") col.itemR(softbody, "friction") + col.itemR(softbody, "mass") + col.item_pointerR(softbody, "mass_vertex_group", ob, "vertex_groups", text="Mass:") col = split.column() col.itemL(text="Simulation:") @@ -167,6 +168,7 @@ class PHYSICS_PT_softbody_edge(PhysicButtonsPanel): col.itemR(softbody, "plastic") col.itemR(softbody, "bending") col.itemR(softbody, "spring_length", text="Length") + col.item_pointerR(softbody, "spring_vertex_group", ob, "vertex_groups", text="Springs:") col = split.column() col.itemR(softbody, "stiff_quads") diff --git a/source/blender/makesrna/intern/rna_object_force.c b/source/blender/makesrna/intern/rna_object_force.c index 9ecea76ab0d..d6239d92911 100644 --- a/source/blender/makesrna/intern/rna_object_force.c +++ b/source/blender/makesrna/intern/rna_object_force.c @@ -412,6 +412,19 @@ static void rna_SoftBodySettings_goal_vgroup_set(PointerRNA *ptr, const char *va rna_object_vgroup_name_index_set(ptr, value, &sb->vertgroup); } +static void rna_SoftBodySettings_mass_vgroup_set(PointerRNA *ptr, const char *value) +{ + SoftBody *sb= (SoftBody*)ptr->data; + rna_object_vgroup_name_set(ptr, value, sb->namedVG_Mass, sizeof(sb->namedVG_Mass)); +} + +static void rna_SoftBodySettings_spring_vgroup_set(PointerRNA *ptr, const char *value) +{ + SoftBody *sb= (SoftBody*)ptr->data; + rna_object_vgroup_name_set(ptr, value, sb->namedVG_Spring_K, sizeof(sb->namedVG_Spring_K)); +} + + static char *rna_SoftBodySettings_path(PointerRNA *ptr) { Object *ob= (Object*)ptr->id.data; @@ -1392,6 +1405,12 @@ static void rna_def_softbody(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Mass", ""); RNA_def_property_update(prop, 0, "rna_softbody_update"); + prop= RNA_def_property(srna, "mass_vertex_group", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "namedVG_Mass"); + RNA_def_property_ui_text(prop, "Mass Vertex Group", "Control point mass values."); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SoftBodySettings_mass_vgroup_set"); + RNA_def_property_update(prop, 0, "rna_softbody_update"); + prop= RNA_def_property(srna, "gravity", PROP_FLOAT, PROP_ACCELERATION); RNA_def_property_float_sdna(prop, NULL, "grav"); RNA_def_property_range(prop, -10.0f, 10.0f); @@ -1490,6 +1509,12 @@ static void rna_def_softbody(BlenderRNA *brna) RNA_def_property_range(prop, 0.0f, 1.0f); RNA_def_property_ui_text(prop, "Shear", "Shear Stiffness"); + prop= RNA_def_property(srna, "spring_vertex_group", PROP_STRING, PROP_NONE); + RNA_def_property_string_sdna(prop, NULL, "namedVG_Spring_K"); + RNA_def_property_ui_text(prop, "Spring Vertex Group", "Control point spring strength values."); + RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SoftBodySettings_spring_vgroup_set"); + RNA_def_property_update(prop, 0, "rna_softbody_update"); + /* Collision */ prop= RNA_def_property(srna, "collision_type", PROP_ENUM, PROP_NONE);