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>2007-11-13 14:54:20 +0300
committerJoshua Leung <aligorith@gmail.com>2007-11-13 14:54:20 +0300
commit470a69388f5b34e16bd1fbcb4a9c93c0d3a6892f (patch)
tree8d5874b146f2f638b5c0396713225ebc6db89786 /source/blender/src/editipo.c
parente66f325dd7115351a40ddb72af8d347b141886c5 (diff)
== Peach Feature Requests (Bone-Path Drawing) ==
* Added a new option to only calculate a certain number of frames before/after the current frame instead of defining a frame range. This is useful in certain cases on longer timelines, to be able to view the paths for certain regions quicker. * When inserting a keyframe, if a bone already has path drawing on, the path for that bone will get automatically recalculated. More testing is required to see if there are any more cases where this would be useful. Also, a global setting to turn this on/off would be a good idea. Todo (requested but not yet implemented): * Parts of path before/after current frame could get drawn with different colours
Diffstat (limited to 'source/blender/src/editipo.c')
-rw-r--r--source/blender/src/editipo.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/source/blender/src/editipo.c b/source/blender/src/editipo.c
index 52b485c539b..8375e9713ea 100644
--- a/source/blender/src/editipo.c
+++ b/source/blender/src/editipo.c
@@ -3050,12 +3050,13 @@ void common_insertkey(void)
if (ob && (ob->flag & OB_POSEMODE)){
bPoseChannel *pchan;
-
+ short recalc_bonepaths= 0;
+
if (ob->action && ob->action->id.lib) {
error ("Can't key libactions");
return;
}
-
+
id= &ob->id;
for (pchan=ob->pose->chanbase.first; pchan; pchan=pchan->next) {
if (pchan->flag & POSE_KEY) {
@@ -3134,11 +3135,23 @@ void common_insertkey(void)
/* clear unkeyed flag (it doesn't matter if it's set or not) */
if (pchan->bone)
pchan->bone->flag &= ~BONE_UNKEYED;
+
+ /* check if bone has a path */
+ if (pchan->path)
+ recalc_bonepaths = 1;
}
}
+
+ /* recalculate ipo handles, etc. */
if(ob->action)
remake_action_ipos(ob->action);
-
+
+ /* recalculate bone-paths on adding new keyframe? */
+ // TODO: currently, there is no setting to turn this on/off globally
+ if (recalc_bonepaths)
+ pose_calculate_path(ob);
+
+
allqueue(REDRAWIPO, 0);
allqueue(REDRAWACTION, 0);
allqueue(REDRAWNLA, 0);