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>2010-03-11 14:15:25 +0300
committerJoshua Leung <aligorith@gmail.com>2010-03-11 14:15:25 +0300
commit6028470a9cb5410328df0d681582144573bbc781 (patch)
tree9c804fa2565ec2ca4498f13c5775066084453b89 /source/blender/editors/transform
parent69a7060678e96b53548a14f22a83510f4d9edcd0 (diff)
Motion Paths + Auto-Keying:
Revised the conditions under which motion paths get recalculated after transforms (when auto-keying is enabled). Now, the type of path display does not matter, but rather that the object/bone in question has any paths at all. This makes animating with these a much smoother experience.
Diffstat (limited to 'source/blender/editors/transform')
-rw-r--r--source/blender/editors/transform/transform_conversions.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 5fd96e466b0..372aa42bac3 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -4688,9 +4688,11 @@ void autokeyframe_pose_cb_func(bContext *C, Scene *scene, View3D *v3d, Object *o
}
/* do the bone paths
- * NOTE: only do this when there is context info
+ * - only do this when there is context info, since we need that to resolve
+ * how to do the updates and so on...
+ * - do not calculate unless there are paths already to update...
*/
- if (C && (ob->pose->avs.path_type == MOTIONPATH_TYPE_ACFRA)) {
+ 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(C, scene, ob);
}
@@ -4996,7 +4998,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t)
if (!cancelled) {
autokeyframe_ob_cb_func(C, t->scene, (View3D *)t->view, ob, t->mode);
- if (ob->avs.path_type == MOTIONPATH_TYPE_ACFRA)
+ /* only calculate paths if there are paths to be recalculated */
+ if (ob->avs.path_bakeflag & MOTIONPATH_BAKE_HAS_PATHS)
recalcObPaths= 1;
}
}