[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [38319] branches/soc-2011-pepper/source/ blender: Bugfix #27881: Motion paths don' t correctly update with pose sliding

Joshua Leung aligorith at gmail.com
Tue Jul 12 05:02:55 CEST 2011


Revision: 38319
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=38319
Author:   aligorith
Date:     2011-07-12 03:02:53 +0000 (Tue, 12 Jul 2011)
Log Message:
-----------
Bugfix #27881: Motion paths don't correctly update with pose sliding
tools

Modified Paths:
--------------
    branches/soc-2011-pepper/source/blender/blenkernel/intern/anim.c
    branches/soc-2011-pepper/source/blender/editors/armature/poseUtils.c

Modified: branches/soc-2011-pepper/source/blender/blenkernel/intern/anim.c
===================================================================
--- branches/soc-2011-pepper/source/blender/blenkernel/intern/anim.c	2011-07-12 02:40:30 UTC (rev 38318)
+++ branches/soc-2011-pepper/source/blender/blenkernel/intern/anim.c	2011-07-12 03:02:53 UTC (rev 38319)
@@ -173,7 +173,7 @@
 	}
 
 	/* avoid 0 size allocs */
-	if(avs->path_sf >= avs->path_ef) {
+	if (avs->path_sf >= avs->path_ef) {
 		return NULL;
 	}
 
@@ -231,6 +231,7 @@
 /* get list of motion paths to be baked for the given object
  * 	- assumes the given list is ready to be used
  */
+// TODO: it would be nice in future to be able to update objects dependant on these bones too?
 void animviz_get_object_motionpaths(Object *ob, ListBase *targets)
 {
 	MPathTarget *mpt;

Modified: branches/soc-2011-pepper/source/blender/editors/armature/poseUtils.c
===================================================================
--- branches/soc-2011-pepper/source/blender/editors/armature/poseUtils.c	2011-07-12 02:40:30 UTC (rev 38318)
+++ branches/soc-2011-pepper/source/blender/editors/armature/poseUtils.c	2011-07-12 03:02:53 UTC (rev 38319)
@@ -247,6 +247,15 @@
 		/* insert keyframes for all relevant bones in one go */
 		ANIM_apply_keyingset(C, &dsources, NULL, ks, MODIFYKEY_MODE_INSERT, cframe);
 		BLI_freelistN(&dsources);
+		
+		/* do the bone paths
+		 *	- only do this if keyframes should have been added
+		 *	- do not calculate unless there are paths already to update...
+		 */
+		if (C && (ob->pose->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS)) {
+			//ED_pose_clear_paths(C, ob); // XXX for now, don't need to clear
+			ED_pose_recalculate_paths(scene, ob);
+		}
 	}
 }
 




More information about the Bf-blender-cvs mailing list