[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26122] trunk/blender/source/blender/ editors/transform/transform_conversions.c: Motion Paths are now recalculated again after transforms ( with autokeying and around-current frame displays enabled)

Joshua Leung aligorith at gmail.com
Tue Jan 19 22:44:22 CET 2010


Revision: 26122
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26122
Author:   aligorith
Date:     2010-01-19 22:44:22 +0100 (Tue, 19 Jan 2010)

Log Message:
-----------
Motion Paths are now recalculated again after transforms (with autokeying and around-current frame displays enabled)

Modified Paths:
--------------
    trunk/blender/source/blender/editors/transform/transform_conversions.c

Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-01-19 21:42:01 UTC (rev 26121)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c	2010-01-19 21:44:22 UTC (rev 26122)
@@ -4708,8 +4708,8 @@
 		/* do the bone paths 
 		 * NOTE: only do this when there is context info
 		 */
-		if (C && (arm->pathflag & ARM_PATH_ACFRA)) {
-			//pose_clear_paths(ob); // XXX for now, don't need to clear
+		if (C && (ob->pose->avs.path_type == MOTIONPATH_TYPE_ACFRA)) {
+			//ED_pose_clear_paths(C, ob); // XXX for now, don't need to clear
 			ED_pose_recalculate_paths(C, scene, ob);
 		}
 	}
@@ -4963,7 +4963,7 @@
 		;
 	}
 	else { /* Objects */
-		int i;
+		int i, recalcObPaths=0;
 
 		for (i = 0; i < t->total; i++) {
 			TransData *td = t->data + i;
@@ -4996,9 +4996,21 @@
 			DAG_id_flush_update(&ob->id, OB_RECALC_OB);
 
 			/* Set autokey if necessary */
-			if (!cancelled)
+			if (!cancelled) {
 				autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode);
+				
+				if (ob->avs.path_type == MOTIONPATH_TYPE_ACFRA)
+					recalcObPaths= 1;
+			}
 		}
+		
+		/* recalculate motion paths for objects (if necessary) 
+		 * NOTE: only do this when there is context info
+		 */
+		if (C && recalcObPaths) {
+			//ED_objects_clear_paths(C); // XXX for now, don't need to clear
+			ED_objects_recalculate_paths(C, t->scene);
+		}
 	}
 
 	clear_trans_object_base_flags(t);





More information about the Bf-blender-cvs mailing list