414
415
PyObject *parent_object = NULL;
415
416
PyObject *constants = NULL, *item = NULL;
416
int frame = 1, oldframe, length, x, numeric_value = 0, oldflag, no_ipo_update = 0;
417
int frame = 1, oldframe, length, x, numeric_value = 0, oldflag, no_ipo_update = 0, flag = 0;
417
418
bPoseChannel *pchan = NULL;
420
421
if (!PyArg_ParseTuple(args, "O!i|Oi", &Object_Type, &parent_object, &frame, &constants, &no_ipo_update ))
421
422
goto AttributeError;
423
/* incase we ever have a value other then 1 for fast */
424
/* flag should be initialised with the 'autokeying' flags like for normal keying */
425
if (no_ipo_update) flag |= INSERTKEY_FAST;
426
if (IS_AUTOKEY_FLAG(AUTOMATKEY)) flag |= INSERTKEY_MATRIX;
427
if (IS_AUTOKEY_FLAG(INSERTNEEDED)) flag |= INSERTKEY_NEEDED;
427
429
//verify that this pchannel is part of the object->pose
428
430
for (pchan = ((BPy_Object*)parent_object)->object->pose->chanbase.first;
492
494
//insert the pose keys
493
495
if (self->posechannel->flag & POSE_ROT){
494
496
insertkey(&((BPy_Object*)parent_object)->object->id,
495
ID_PO, self->posechannel->name, NULL, AC_QUAT_X, no_ipo_update);
496
insertkey(&((BPy_Object*)parent_object)->object->id,
497
ID_PO, self->posechannel->name, NULL, AC_QUAT_Y, no_ipo_update);
498
insertkey(&((BPy_Object*)parent_object)->object->id,
499
ID_PO, self->posechannel->name, NULL, AC_QUAT_Z, no_ipo_update);
500
insertkey(&((BPy_Object*)parent_object)->object->id,
501
ID_PO, self->posechannel->name, NULL, AC_QUAT_W, no_ipo_update);
497
ID_PO, self->posechannel->name, NULL, AC_QUAT_X, flag);
498
insertkey(&((BPy_Object*)parent_object)->object->id,
499
ID_PO, self->posechannel->name, NULL, AC_QUAT_Y, flag);
500
insertkey(&((BPy_Object*)parent_object)->object->id,
501
ID_PO, self->posechannel->name, NULL, AC_QUAT_Z, flag);
502
insertkey(&((BPy_Object*)parent_object)->object->id,
503
ID_PO, self->posechannel->name, NULL, AC_QUAT_W, flag);
503
505
if (self->posechannel->flag & POSE_LOC){
504
506
insertkey(&((BPy_Object*)parent_object)->object->id,
505
ID_PO, self->posechannel->name, NULL, AC_LOC_X, no_ipo_update);
506
insertkey(&((BPy_Object*)parent_object)->object->id,
507
ID_PO, self->posechannel->name, NULL, AC_LOC_Y, no_ipo_update);
508
insertkey(&((BPy_Object*)parent_object)->object->id,
509
ID_PO, self->posechannel->name, NULL, AC_LOC_Z, no_ipo_update);
507
ID_PO, self->posechannel->name, NULL, AC_LOC_X, flag);
508
insertkey(&((BPy_Object*)parent_object)->object->id,
509
ID_PO, self->posechannel->name, NULL, AC_LOC_Y, flag);
510
insertkey(&((BPy_Object*)parent_object)->object->id,
511
ID_PO, self->posechannel->name, NULL, AC_LOC_Z, flag);
511
513
if (self->posechannel->flag & POSE_SIZE){
512
514
insertkey(&((BPy_Object*)parent_object)->object->id,
513
ID_PO, self->posechannel->name, NULL, AC_SIZE_X, no_ipo_update);
514
insertkey(&((BPy_Object*)parent_object)->object->id,
515
ID_PO, self->posechannel->name, NULL, AC_SIZE_Y, no_ipo_update);
516
insertkey(&((BPy_Object*)parent_object)->object->id,
517
ID_PO, self->posechannel->name, NULL, AC_SIZE_Z, no_ipo_update);
515
ID_PO, self->posechannel->name, NULL, AC_SIZE_X, flag);
516
insertkey(&((BPy_Object*)parent_object)->object->id,
517
ID_PO, self->posechannel->name, NULL, AC_SIZE_Y, flag);
518
insertkey(&((BPy_Object*)parent_object)->object->id,
519
ID_PO, self->posechannel->name, NULL, AC_SIZE_Z, flag);
520
522
//flip the frame back