diff options
author | Campbell Barton <ideasman42@gmail.com> | 2010-12-08 16:02:16 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2010-12-08 16:02:16 +0300 |
commit | 02f4003184b071121079cf4d8ab76ebd7c2894ef (patch) | |
tree | 8e720e84ce5aae308818d457e6cab9edd5ccb315 /source | |
parent | b8bde683fb7133c4c36c5b83b9b2535df2e0c180 (diff) |
metaball rotations must be kept normalized, normalize values after setting from rna/python.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/makesdna/DNA_meta_types.h | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_meta.c | 11 |
2 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/makesdna/DNA_meta_types.h b/source/blender/makesdna/DNA_meta_types.h index feadf7cd510..dc0ac7fd80c 100644 --- a/source/blender/makesdna/DNA_meta_types.h +++ b/source/blender/makesdna/DNA_meta_types.h @@ -48,7 +48,7 @@ typedef struct MetaElem { short type, flag, selcol1, selcol2; float x, y, z; /* Position of center of MetaElem */ - float quat[4]; /* Rotation of MetaElem */ + float quat[4]; /* Rotation of MetaElem (MUST be kept normalized) */ float expx; /* dimension parameters, used for some types like cubes */ float expy; float expz; diff --git a/source/blender/makesrna/intern/rna_meta.c b/source/blender/makesrna/intern/rna_meta.c index e2e66b53513..b0ece32b6db 100644 --- a/source/blender/makesrna/intern/rna_meta.c +++ b/source/blender/makesrna/intern/rna_meta.c @@ -103,6 +103,13 @@ static void rna_MetaBall_update_data(Main *bmain, Scene *scene, PointerRNA *ptr) } } +static void rna_MetaBall_update_rotation(Main *bmain, Scene *scene, PointerRNA *ptr) +{ + MetaElem *ml= ptr->data; + normalize_qt(ml->quat); + rna_MetaBall_update_data(bmain, scene, ptr); +} + static MetaElem *rna_MetaBall_elements_new(MetaBall *mb, int type) { MetaElem *ml= add_metaball_element(mb, type); @@ -164,8 +171,8 @@ static void rna_def_metaelement(BlenderRNA *brna) prop= RNA_def_property(srna, "rotation", PROP_FLOAT, PROP_QUATERNION); RNA_def_property_float_sdna(prop, NULL, "quat"); - RNA_def_property_ui_text(prop, "Rotation", ""); - RNA_def_property_update(prop, 0, "rna_MetaBall_update_data"); + RNA_def_property_ui_text(prop, "Rotation", "Normalized quaternion rotation"); + RNA_def_property_update(prop, 0, "rna_MetaBall_update_rotation"); prop= RNA_def_property(srna, "radius", PROP_FLOAT, PROP_UNSIGNED|PROP_UNIT_LENGTH); RNA_def_property_float_sdna(prop, NULL, "rad"); |