forked from bartvdbraak/blender
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.
This commit is contained in:
parent
0aa6ade75a
commit
f4ccee2785
@ -1136,9 +1136,11 @@ static void do_mesh_key(Scene *scene, Object *ob, Key *key, char *out, const int
|
|||||||
else {
|
else {
|
||||||
if (key->type==KEY_RELATIVE) {
|
if (key->type==KEY_RELATIVE) {
|
||||||
KeyBlock *kb;
|
KeyBlock *kb;
|
||||||
|
float f = 0.0;
|
||||||
for (kb= key->block.first; kb; kb= kb->next)
|
for (kb= key->block.first; kb; kb= kb->next, f += 0.1f) {
|
||||||
kb->weights= get_weights_array(ob, kb->vgroup);
|
kb->weights= get_weights_array(ob, kb->vgroup);
|
||||||
|
// kb->pos = f;
|
||||||
|
}
|
||||||
|
|
||||||
do_rel_key(0, tot, tot, (char *)out, key, actkb, KEY_MODE_DUMMY);
|
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;
|
kb->slidermax= 1.0f;
|
||||||
|
|
||||||
// XXX kb->pos is the confusing old horizontal-line RVK crap in old IPO Editor...
|
// 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;
|
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;
|
else {
|
||||||
|
kb->pos = key->ctime / 100.0f;
|
||||||
sort_keys(key);
|
sort_keys(key);
|
||||||
#endif // XXX old animation system
|
|
||||||
}
|
}
|
||||||
return kb;
|
return kb;
|
||||||
}
|
}
|
||||||
|
@ -76,9 +76,11 @@
|
|||||||
|
|
||||||
static void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int from_mix)
|
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);
|
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);
|
WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user