[Bf-blender-cvs] [0b3a652] temp_motionpaths: Only insert/delete keyframes automatically if the real time motionpath update is on.

Antony Riakiotakis noreply at git.blender.org
Thu Mar 12 11:28:02 CET 2015


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) {




More information about the Bf-blender-cvs mailing list