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>2011-07-12 07:02:53 +0400
committerJoshua Leung <aligorith@gmail.com>2011-07-12 07:02:53 +0400
commit2fd3ae7539475fcd2546ba0d5a27687f4e683ccf (patch)
treecad4cae673771e3c07c4d51ffaa1dfb38af8f320 /source/blender
parentde69b6819d9542663e649b577c4e5670bd1aa21e (diff)
Bugfix #27881: Motion paths don't correctly update with pose sliding
tools
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/intern/anim.c3
-rw-r--r--source/blender/editors/armature/poseUtils.c9
2 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/blenkernel/intern/anim.c b/source/blender/blenkernel/intern/anim.c
index 8aa816f9cb5..3300c82cae2 100644
--- a/source/blender/blenkernel/intern/anim.c
+++ b/source/blender/blenkernel/intern/anim.c
@@ -173,7 +173,7 @@ bMotionPath *animviz_verify_motionpaths(Scene *scene, Object *ob, bPoseChannel *
}
/* avoid 0 size allocs */
- if(avs->path_sf >= avs->path_ef) {
+ if (avs->path_sf >= avs->path_ef) {
return NULL;
}
@@ -231,6 +231,7 @@ typedef struct MPathTarget {
/* 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;
diff --git a/source/blender/editors/armature/poseUtils.c b/source/blender/editors/armature/poseUtils.c
index 7ade93076e5..0f001751a96 100644
--- a/source/blender/editors/armature/poseUtils.c
+++ b/source/blender/editors/armature/poseUtils.c
@@ -247,6 +247,15 @@ void poseAnim_mapping_autoKeyframe (bContext *C, Scene *scene, Object *ob, ListB
/* 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);
+ }
}
}