diff options
author | Joshua Leung <aligorith@gmail.com> | 2007-04-28 13:35:16 +0400 |
---|---|---|
committer | Joshua Leung <aligorith@gmail.com> | 2007-04-28 13:35:16 +0400 |
commit | 6bb16e0c86c553697f6cade8c6e1cd166f993d2c (patch) | |
tree | 43774cd31992ce005b975327e558443f8d5cedb1 /source/blender/src/editaction.c | |
parent | 705671ebaac3648f67ebc3c12b441e0a2b09df2d (diff) |
== IPO Editor - Scaled Curves for NLA-Strip Curves ==
This commit resolves an issue dating back a few releases. When the IPO block being displayed in the IPO editor came from an Action being used as an Action Strip
in the NLA editor, the keyframes in the IPO editor were not displayed in 'NLA-time'.
There are however a number of things that still need work on so that they will play
nicely with these changes. Having said that, the IPO editor is still generally stable
for use (or should be). In case anything plays up, 'pin' the IPO view you're using
to turn off these changes.
This resolves Todo #4335.
Known Issues:
* When 'K' (show keys) mode is on, it doesn't work too too well yet. The display
in such situations will be a bit confusing.
* Pressing IKEY in the IPO editor (for inserting a keyframe on the current frame)
also doesn't work too well yet. It will insert a keyframe on the wrong frame.
* Transforms don't get any correction for scaling yet. This is only an issue when
snapping transforms to the grid, or relying on the delta numbers printed in the
header.
Diffstat (limited to 'source/blender/src/editaction.c')
-rw-r--r-- | source/blender/src/editaction.c | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/source/blender/src/editaction.c b/source/blender/src/editaction.c index d3e32c541f7..83e341af8fa 100644 --- a/source/blender/src/editaction.c +++ b/source/blender/src/editaction.c @@ -2484,9 +2484,9 @@ static void set_snap_actionchannels(bAction *act, short snaptype) if(EDITABLE_ACHAN(achan)) { if (achan->ipo) { if(G.saction->pin==0 && OBACT) { - actstrip_map_ipo_keys(OBACT, achan->ipo, 0); + actstrip_map_ipo_keys(OBACT, achan->ipo, 0, 1); snap_ipo_keys(achan->ipo, snaptype); - actstrip_map_ipo_keys(OBACT, achan->ipo, 1); + actstrip_map_ipo_keys(OBACT, achan->ipo, 1, 1); } else { snap_ipo_keys(achan->ipo, snaptype); @@ -2501,9 +2501,9 @@ static void set_snap_actionchannels(bAction *act, short snaptype) if (EDITABLE_CONCHAN(conchan)) { if (conchan->ipo) { if(G.saction->pin==0 && OBACT) { - actstrip_map_ipo_keys(OBACT, conchan->ipo, 0); + actstrip_map_ipo_keys(OBACT, conchan->ipo, 0, 1); snap_ipo_keys(conchan->ipo, snaptype); - actstrip_map_ipo_keys(OBACT, conchan->ipo, 1); + actstrip_map_ipo_keys(OBACT, conchan->ipo, 1, 1); } else { snap_ipo_keys(conchan->ipo, snaptype); @@ -2584,9 +2584,9 @@ static void mirror_actionchannels(bAction *act, short mirror_mode) if (EDITABLE_ACHAN(achan)) { if (achan->ipo) { if (G.saction->pin==0 && OBACT) { - actstrip_map_ipo_keys(OBACT, achan->ipo, 0); + actstrip_map_ipo_keys(OBACT, achan->ipo, 0, 1); mirror_ipo_keys(achan->ipo, mirror_mode); - actstrip_map_ipo_keys(OBACT, achan->ipo, 1); + actstrip_map_ipo_keys(OBACT, achan->ipo, 1, 1); } else { mirror_ipo_keys(achan->ipo, mirror_mode); @@ -2601,9 +2601,9 @@ static void mirror_actionchannels(bAction *act, short mirror_mode) if (EDITABLE_CONCHAN(conchan)) { if (conchan->ipo) { if(G.saction->pin==0 && OBACT) { - actstrip_map_ipo_keys(OBACT, conchan->ipo, 0); + actstrip_map_ipo_keys(OBACT, conchan->ipo, 0, 1); mirror_ipo_keys(conchan->ipo, mirror_mode); - actstrip_map_ipo_keys(OBACT, conchan->ipo, 1); + actstrip_map_ipo_keys(OBACT, conchan->ipo, 1, 1); } else { mirror_ipo_keys(conchan->ipo, mirror_mode); @@ -3725,9 +3725,9 @@ void markers_selectkeys_between(void) for (achan= act->chanbase.first; achan; achan= achan->next) { if (achan->ipo) { if(G.saction->pin==0 && OBACT) { - actstrip_map_ipo_keys(OBACT, achan->ipo, 0); + actstrip_map_ipo_keys(OBACT, achan->ipo, 0, 1); borderselect_ipo_key(achan->ipo, min, max, SELECT_ADD); - actstrip_map_ipo_keys(OBACT, achan->ipo, 1); + actstrip_map_ipo_keys(OBACT, achan->ipo, 1, 1); } else { borderselect_ipo_key(achan->ipo, min, max, SELECT_ADD); @@ -3740,9 +3740,9 @@ void markers_selectkeys_between(void) for (conchan= achan->constraintChannels.first; conchan; conchan= conchan->next) { if (conchan->ipo) { if(G.saction->pin==0 && OBACT) { - actstrip_map_ipo_keys(OBACT, conchan->ipo, 0); + actstrip_map_ipo_keys(OBACT, conchan->ipo, 0, 1); borderselect_ipo_key(conchan->ipo, min, max, SELECT_ADD); - actstrip_map_ipo_keys(OBACT, conchan->ipo, 1); + actstrip_map_ipo_keys(OBACT, conchan->ipo, 1, 1); } else { borderselect_ipo_key(conchan->ipo, min, max, SELECT_ADD); |