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-03-24 06:02:34 +0300
committerJoshua Leung <aligorith@gmail.com>2011-03-24 06:02:34 +0300
commiteef811a0954ad67a4667592c85cd95822d15e17c (patch)
tree43c252be6af9cd5c01595de87b2e148c3124de56 /source/blender/editors/animation/keyframes_draw.c
parentc210b3991a074f27af80178c85d0658c4041480b (diff)
Animation Tool: Propagate Pose
This tool automates the process of copying a pose to successive keyframes, making it easier for animators to go back and change the pose for some controls which remain "static" for periods of time. Previously, animators would need to do a "{Ctrl-Pageup Ctrl-V} * number_of_static_keyframes" dance for each set of controls that this happened on, which is not too good ergonomically speaking. There are two modes exposed via the menu (Pose->Propagate): - "Pose Propagate" - also known as the 'WHILE_HELD' mode, which propagates to all keyframes that are holding the same value - "To Next Keyframe" - which only propagates the pose to the closest keyframe in the occurring after (but not including) the current frame Additionally, there are a few other modes that can be used, though they are less useful for direct use from the UI, though they can be used via the PyAPI as need be. --- Also, I did some cleanups in the "Pose" menu to bring it more into line with the Object mode one. There are some more tweaks that could still be done here, such as bringing the keyframing operator entries under a submenu too (as in the Object mode version) to get the length of this under control.
Diffstat (limited to 'source/blender/editors/animation/keyframes_draw.c')
-rw-r--r--source/blender/editors/animation/keyframes_draw.c19
1 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/editors/animation/keyframes_draw.c b/source/blender/editors/animation/keyframes_draw.c
index aab38790687..3f8f8dc1e84 100644
--- a/source/blender/editors/animation/keyframes_draw.c
+++ b/source/blender/editors/animation/keyframes_draw.c
@@ -80,7 +80,7 @@
/* ActKeyColumns (Keyframe Columns) ------------------------------------------ */
/* Comparator callback used for ActKeyColumns and cframe float-value pointer */
-// NOTE: this is exported to other modules that use the ActKeyColumns for finding keyframes
+/* NOTE: this is exported to other modules that use the ActKeyColumns for finding keyframes */
short compare_ak_cfraPtr (void *node, void *data)
{
ActKeyColumn *ak= (ActKeyColumn *)node;
@@ -311,6 +311,23 @@ static BezTriple *abk_get_bezt_with_value (ActBeztColumn *abk, float value)
/* ActKeyBlocks (Long Keyframes) ------------------------------------------ */
+/* Comparator callback used for ActKeyBlock and cframe float-value pointer */
+/* NOTE: this is exported to other modules that use the ActKeyBlocks for finding long-keyframes */
+short compare_ab_cfraPtr (void *node, void *data)
+{
+ ActKeyBlock *ab= (ActKeyBlock *)node;
+ float *cframe= data;
+
+ if (*cframe < ab->start)
+ return -1;
+ else if (*cframe > ab->start)
+ return 1;
+ else
+ return 0;
+}
+
+/* --------------- */
+
/* Create a ActKeyColumn for a pair of BezTriples */
static ActKeyBlock *bezts_to_new_actkeyblock(BezTriple *prev, BezTriple *beztn)
{