Commit: 0b3a652cd57aaed2a187177e56bbd3871f1b59ce
Author: Antony Riakiotakis
Date:   Thu Mar 12 11:27:24 2015 +0100
Branches: temp_motionpaths
https://developer.blender.org/rB0b3a652cd57aaed2a187177e56bbd3871f1b59ce

Only insert/delete keyframes automatically if the real time motionpath
update is on.

===================================================================

M       source/blender/editors/transform/transform.c
M       source/blender/editors/transform/transform_conversions.c

===================================================================

diff --git a/source/blender/editors/transform/transform.c 
b/source/blender/editors/transform/transform.c
index 0beb39e..191cd7c 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -2357,19 +2357,21 @@ void transformApply(bContext *C, TransInfo *t)
                viewRedrawForce(C, t);
        }
 
-       if ((t->flag & T_POSE) && (t->poseobj) && (t->mode != TFM_DUMMY) && 
t->scene->toolsettings->realtime_motion_path) {
-               if ((t->poseobj->pose->avs.path_bakeflag & 
MOTIONPATH_BAKE_HAS_PATHS)) {
-                       //ED_pose_clear_paths(C, ob); // XXX for now, don't 
need to clear
-                       bool targetless_ik = (t->flag & T_AUTOIK) != 0; // XXX 
this currently doesn't work, since flags aren't set yet!
+       if (t->scene->toolsettings->realtime_motion_path) {
+               if ((t->flag & T_POSE) && (t->poseobj) && (t->mode != 
TFM_DUMMY)) {
+                       if ((t->poseobj->pose->avs.path_bakeflag & 
MOTIONPATH_BAKE_HAS_PATHS)) {
+                               //ED_pose_clear_paths(C, ob); // XXX for now, 
don't need to clear
+                               bool targetless_ik = (t->flag & T_AUTOIK) != 0; 
// XXX this currently doesn't work, since flags aren't set yet!
 
-                       autokeyframe_pose_cb_func(C, t->scene, (View3D 
*)t->view, t->poseobj, t->mode, targetless_ik, true);
+                               autokeyframe_pose_cb_func(C, t->scene, (View3D 
*)t->view, t->poseobj, t->mode, targetless_ik, true);
+                       }
                }
-       }
-       else {
-               int i;
-               for (i = 0; i < t->total; i++) {
-                       TransData *td = t->data + i;
-                       autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, 
td->ob, t->mode, true);
+               else {
+                       int i;
+                       for (i = 0; i < t->total; i++) {
+                               TransData *td = t->data + i;
+                               autokeyframe_ob_cb_func(C, t->scene, (View3D 
*)t->view, td->ob, t->mode, true);
+                       }
                }
        }
 
diff --git a/source/blender/editors/transform/transform_conversions.c 
b/source/blender/editors/transform/transform_conversions.c
index c2395c9..9b5488c 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -5982,7 +5982,10 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
 
                /* automatic inserting of keys and unkeyed tagging - only if 
transform wasn't canceled (or TFM_DUMMY) */
                if (t->mode != TFM_DUMMY) {
-                       autokeyframe_pose_cb_func(C, t->scene, (View3D 
*)t->view, ob, t->mode, targetless_ik, !canceled);
+                       if (t->scene->toolsettings->realtime_motion_path)
+                               autokeyframe_pose_cb_func(C, t->scene, (View3D 
*)t->view, ob, t->mode, targetless_ik, !canceled);
+                       else if (!canceled)
+                               autokeyframe_pose_cb_func(C, t->scene, (View3D 
*)t->view, ob, t->mode, targetless_ik, true);
                        DAG_id_tag_update(&ob->id, OB_RECALC_DATA);
                }
                else if (arm->flag & ARM_DELAYDEFORM) {
@@ -6040,7 +6043,10 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
                        DAG_id_tag_update(&ob->id, OB_RECALC_OB);
 
                        /* Set autokey if necessary */
-                       autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, 
ob, t->mode, !canceled);
+                       if (t->scene->toolsettings->realtime_motion_path)
+                               autokeyframe_ob_cb_func(C, t->scene, (View3D 
*)t->view, ob, t->mode, !canceled);
+                       else if (!canceled)
+                               autokeyframe_ob_cb_func(C, t->scene, (View3D 
*)t->view, ob, t->mode, true);
                        
                        /* restore rigid body transform */
                        if (ob->rigidbody_object && canceled) {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to