diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-03-30 15:49:07 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2010-03-30 15:49:07 +0400 |
commit | 052cb2afd22b9f54fdb1528066e6e3cba6db6e99 (patch) | |
tree | 6e499a7e0ec79fab64dd0467aa2380355f6e9556 /source/blender/makesrna/intern/rna_cloth.c | |
parent | 19fb497d139991ec759f3be3db53a27492c62877 (diff) |
Rest shape key for cloth option, this makes it possible
to specify different spring lengths.
Implementation is quite ugly because the shape key has to be pulled
through the modifier stack somehow, need a more flexible data mask
system to solve this properly.
(commits 27773,27775,27778 by Brecht from render25 branch)
Diffstat (limited to 'source/blender/makesrna/intern/rna_cloth.c')
-rw-r--r-- | source/blender/makesrna/intern/rna_cloth.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_cloth.c b/source/blender/makesrna/intern/rna_cloth.c index 19718a33265..3518044a601 100644 --- a/source/blender/makesrna/intern/rna_cloth.c +++ b/source/blender/makesrna/intern/rna_cloth.c @@ -140,6 +140,22 @@ static void rna_ClothSettings_bend_vgroup_set(PointerRNA *ptr, const char *value rna_object_vgroup_name_index_set(ptr, value, &sim->vgroup_bend); } +static PointerRNA rna_ClothSettings_rest_shape_key_get(PointerRNA *ptr) +{ + Object *ob= (Object*)ptr->id.data; + ClothSimSettings *sim= (ClothSimSettings*)ptr->data; + + return rna_object_shapekey_index_get(ob->data, sim->shapekey_rest); +} + +static void rna_ClothSettings_rest_shape_key_set(PointerRNA *ptr, PointerRNA value) +{ + Object *ob= (Object*)ptr->id.data; + ClothSimSettings *sim= (ClothSimSettings*)ptr->data; + + sim->shapekey_rest= rna_object_shapekey_index_set(ob->data, value, sim->shapekey_rest); +} + static void rna_ClothSettings_gravity_get(PointerRNA *ptr, float *values) { ClothSimSettings *sim= (ClothSimSettings*)ptr->data; @@ -334,6 +350,12 @@ static void rna_def_cloth_sim_settings(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Pre Roll", "Simulation starts on this frame"); RNA_def_property_update(prop, 0, "rna_cloth_reset"); + prop= RNA_def_property(srna, "rest_shape_key", PROP_POINTER, PROP_NONE); + RNA_def_property_flag(prop, PROP_EDITABLE); + RNA_def_property_struct_type(prop, "ShapeKey"); + RNA_def_property_pointer_funcs(prop, "rna_ClothSettings_rest_shape_key_get", "rna_ClothSettings_rest_shape_key_set", NULL); + RNA_def_property_ui_text(prop, "Rest Shade Key", "Shape key to use the rest spring lengths from"); + RNA_def_property_update(prop, 0, "rna_cloth_update"); /* unused */ |