Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Leung <aligorith@gmail.com>2009-04-15 05:10:36 +0400
committerJoshua Leung <aligorith@gmail.com>2009-04-15 05:10:36 +0400
commit2dbf73f6a032ab44539cfd8c05f5743fbaf33902 (patch)
tree2a3093dfa8b561213db1c58bf2583cb05f6b2ed5 /source/blender/editors/transform/transform_conversions.c
parent5b3d7bfdf6305e880f89d58cbe852a8d2ba7b241 (diff)
2.5 PoseLib - First steps to get PoseLib to work in 2.5
* Cleaned up Keyframing API to get eliminate some of the problems faced during the original implementation of PoseLib, thus reducing code redundancy. * Added new Animato evaluation functions specifically for use by PoseLib. * Replaced parts of PoseLib code which relied on old animation system to the equivalent code for Animato. Notice the much cleaner + saner + compact code! Next step is to operatorfy the PoseLib tools (while maintaining possibility for an API to some things) :)
Diffstat (limited to 'source/blender/editors/transform/transform_conversions.c')
-rw-r--r--source/blender/editors/transform/transform_conversions.c92
1 files changed, 46 insertions, 46 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 56ae3a3e82c..6c7aa1ee49d 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -4138,7 +4138,7 @@ void autokeyframe_ob_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode)
if (adt && adt->action) {
for (fcu= adt->action->curves.first; fcu; fcu= fcu->next) {
fcu->flag &= ~FCURVE_SELECTED;
- insertkey(id, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(id, adt->action, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
}
}
}
@@ -4175,35 +4175,35 @@ void autokeyframe_ob_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode)
// TODO: the group names here are temporary...
// TODO: should this be made to use the builtin KeyingSets instead?
if (doLoc) {
- insertkey(id, "Object Transform", "location", 0, cfra, flag);
- insertkey(id, "Object Transform", "location", 1, cfra, flag);
- insertkey(id, "Object Transform", "location", 2, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "location", 0, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "location", 1, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "location", 2, cfra, flag);
}
if (doRot) {
- insertkey(id, "Object Transform", "rotation", 0, cfra, flag);
- insertkey(id, "Object Transform", "rotation", 1, cfra, flag);
- insertkey(id, "Object Transform", "rotation", 2, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "rotation", 0, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "rotation", 1, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "rotation", 2, cfra, flag);
}
if (doScale) {
- insertkey(id, "Object Transform", "scale", 0, cfra, flag);
- insertkey(id, "Object Transform", "scale", 1, cfra, flag);
- insertkey(id, "Object Transform", "scale", 2, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "scale", 0, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "scale", 1, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "scale", 2, cfra, flag);
}
}
else {
// TODO: the group names here are temporary...
// TODO: should this be made to use the builtin KeyingSets instead?
- insertkey(id, "Object Transform", "location", 0, cfra, flag);
- insertkey(id, "Object Transform", "location", 1, cfra, flag);
- insertkey(id, "Object Transform", "location", 2, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "location", 0, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "location", 1, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "location", 2, cfra, flag);
- insertkey(id, "Object Transform", "rotation", 0, cfra, flag);
- insertkey(id, "Object Transform", "rotation", 1, cfra, flag);
- insertkey(id, "Object Transform", "rotation", 2, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "rotation", 0, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "rotation", 1, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "rotation", 2, cfra, flag);
- insertkey(id, "Object Transform", "scale", 0, cfra, flag);
- insertkey(id, "Object Transform", "scale", 1, cfra, flag);
- insertkey(id, "Object Transform", "scale", 2, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "scale", 0, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "scale", 1, cfra, flag);
+ insert_keyframe(id, NULL, "Object Transform", "scale", 2, cfra, flag);
}
// XXX todo... find a way to send notifiers from here...
@@ -4248,7 +4248,7 @@ void autokeyframe_pose_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode,
if (IS_AUTOKEY_FLAG(INSERTAVAIL)) {
if (act) {
for (fcu= act->curves.first; fcu; fcu= fcu->next)
- insertkey(id, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
+ insert_keyframe(id, act, ((fcu->grp)?(fcu->grp->name):(NULL)), fcu->rna_path, fcu->array_index, cfra, flag);
}
}
/* only insert keyframe if needed? */
@@ -4279,57 +4279,57 @@ void autokeyframe_pose_cb_func(Scene *scene, View3D *v3d, Object *ob, int tmode,
if (doLoc) {
sprintf(buf, "pose.pose_channels[\"%s\"].location", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
}
if (doRot) {
if (pchan->rotmode == PCHAN_ROT_QUAT) {
sprintf(buf, "pose.pose_channels[\"%s\"].rotation", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
- insertkey(id, pchan->name, buf, 3, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 3, cfra, flag);
}
else {
sprintf(buf, "pose.pose_channels[\"%s\"].euler_rotation", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
}
}
if (doScale) {
sprintf(buf, "pose.pose_channels[\"%s\"].scale", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
}
}
/* insert keyframe in any channel that's appropriate */
else {
sprintf(buf, "pose.pose_channels[\"%s\"].location", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
if (pchan->rotmode == PCHAN_ROT_QUAT) {
sprintf(buf, "pose.pose_channels[\"%s\"].rotation", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
- insertkey(id, pchan->name, buf, 3, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 3, cfra, flag);
}
else {
sprintf(buf, "pose.pose_channels[\"%s\"].euler_rotation", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
}
sprintf(buf, "pose.pose_channels[\"%s\"].scale", pchan->name);
- insertkey(id, pchan->name, buf, 0, cfra, flag);
- insertkey(id, pchan->name, buf, 1, cfra, flag);
- insertkey(id, pchan->name, buf, 2, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 0, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 1, cfra, flag);
+ insert_keyframe(id, NULL, pchan->name, buf, 2, cfra, flag);
}
}
}