diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-04-05 09:51:26 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-04-05 09:51:26 +0400 |
commit | f4ccee2785f91efd4acceeae0713b93b7afaeccd (patch) | |
tree | 17dae274c05977b9b860cfe32c3fb3ce76f7a27e | |
parent | 0aa6ade75a0004d00f769589ae24ef0b152bba9d (diff) |
adding shape key blocks to absolute shape keys would not set the position (which is odd since its the only time they are used).
also re-sort the shape keys after adding them in for absolute keyblocks.
-rw-r--r-- | source/blender/blenkernel/intern/key.c | 18 | ||||
-rw-r--r-- | source/blender/editors/object/object_shapekey.c | 6 |
2 files changed, 11 insertions, 13 deletions
diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index e81cb235c4c..62701f4e98e 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -1136,9 +1136,11 @@ static void do_mesh_key(Scene *scene, Object *ob, Key *key, char *out, const int else { if (key->type==KEY_RELATIVE) { KeyBlock *kb; - - for (kb= key->block.first; kb; kb= kb->next) + float f = 0.0; + for (kb= key->block.first; kb; kb= kb->next, f += 0.1f) { kb->weights= get_weights_array(ob, kb->vgroup); + // kb->pos = f; + } do_rel_key(0, tot, tot, (char *)out, key, actkb, KEY_MODE_DUMMY); @@ -1472,18 +1474,12 @@ KeyBlock *add_keyblock(Key *key, const char *name) kb->slidermax= 1.0f; // XXX kb->pos is the confusing old horizontal-line RVK crap in old IPO Editor... - if (key->type == KEY_RELATIVE) + if (key->type == KEY_RELATIVE) { kb->pos= curpos + 0.1f; + } else { -#if 0 // XXX old animation system - curpos= BKE_curframe(scene); - if (calc_ipo_spec(key->ipo, KEY_SPEED, &curpos)==0) { - curpos /= 100.0; - } - kb->pos= curpos; - + kb->pos = key->ctime / 100.0f; sort_keys(key); -#endif // XXX old animation system } return kb; } diff --git a/source/blender/editors/object/object_shapekey.c b/source/blender/editors/object/object_shapekey.c index 40a7a9b6a92..98a7eca5068 100644 --- a/source/blender/editors/object/object_shapekey.c +++ b/source/blender/editors/object/object_shapekey.c @@ -76,9 +76,11 @@ static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int from_mix) { - if (object_insert_shape_key(scene, ob, NULL, from_mix)) { + KeyBlock *kb; + if ((kb = object_insert_shape_key(scene, ob, NULL, from_mix))) { Key *key= ob_get_key(ob); - ob->shapenr= BLI_countlist(&key->block); + /* for absolute shape keys, new keys may not be added last */ + ob->shapenr = BLI_findindex(&key->block, kb) + 1; WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); } |