== Action/IPO Editors - Code Cleanup ==
Added two macros which are used to test if the active Action/IPO editor is displaying data from a scaled NLA-strip.
This commit is contained in:
@@ -64,6 +64,9 @@
|
||||
#define EDITABLE_ICU(icu) ((icu->flag & IPO_PROTECT)==0)
|
||||
#define SEL_ICU(icu) (icu->flag & IPO_SELECT)
|
||||
|
||||
#define NLA_ACTION_SCALED (G.saction->pin==0 && OBACT)
|
||||
#define NLA_IPO_SCALED (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname)
|
||||
|
||||
/* constants for setting ipo-interpolation type */
|
||||
#define SET_IPO_POPUP 0
|
||||
#define SET_IPO_CONSTANT 1
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
*
|
||||
* The Original Code is: all of this file.
|
||||
*
|
||||
* Contributor(s): none yet.
|
||||
* Contributor(s): Joshua Leung
|
||||
*
|
||||
* ***** END GPL/BL DUAL LICENSE BLOCK *****
|
||||
* Drawing routines for the Action window type
|
||||
@@ -716,7 +716,7 @@ static void draw_channel_strips(SpaceAction *saction)
|
||||
di= glaBegin2DDraw(&scr_rct, &G.v2d->cur);
|
||||
|
||||
/* if in NLA there's a strip active, map the view */
|
||||
if (G.saction->pin==0 && OBACT)
|
||||
if (NLA_ACTION_SCALED)
|
||||
map_active_strip(di, OBACT, 0);
|
||||
|
||||
/* start and end of action itself */
|
||||
@@ -724,7 +724,7 @@ static void draw_channel_strips(SpaceAction *saction)
|
||||
gla2DDrawTranslatePt(di, sta, 0.0f, &act_start, &dummy);
|
||||
gla2DDrawTranslatePt(di, end, 0.0f, &act_end, &dummy);
|
||||
|
||||
if (G.saction->pin==0 && OBACT)
|
||||
if (NLA_ACTION_SCALED)
|
||||
map_active_strip(di, OBACT, 1);
|
||||
|
||||
/* first backdrop strips */
|
||||
@@ -795,7 +795,7 @@ static void draw_channel_strips(SpaceAction *saction)
|
||||
}
|
||||
glDisable(GL_BLEND);
|
||||
|
||||
if (G.saction->pin==0 && OBACT)
|
||||
if (NLA_ACTION_SCALED)
|
||||
map_active_strip(di, OBACT, 0);
|
||||
|
||||
/* keyframes */
|
||||
|
||||
@@ -2158,9 +2158,8 @@ void drawipospace(ScrArea *sa, void *spacedata)
|
||||
}
|
||||
|
||||
/* map ipo-points for drawing if scaled ipo */
|
||||
if (OBACT && OBACT->action && sipo->pin==0 && sipo->actname) {
|
||||
if (NLA_IPO_SCALED)
|
||||
actstrip_map_ipo_keys(OBACT, sipo->ipo, 0, 0);
|
||||
}
|
||||
|
||||
/* draw deselect */
|
||||
draw_ipocurves(0);
|
||||
@@ -2173,9 +2172,8 @@ void drawipospace(ScrArea *sa, void *spacedata)
|
||||
draw_ipovertices(1);
|
||||
|
||||
/* undo mapping of ipo-points for drawing if scaled ipo */
|
||||
if (OBACT && OBACT->action && sipo->pin==0 && sipo->actname) {
|
||||
if (NLA_IPO_SCALED)
|
||||
actstrip_map_ipo_keys(OBACT, sipo->ipo, 1, 0);
|
||||
}
|
||||
|
||||
/* Draw 'curtains' for preview */
|
||||
draw_anim_preview_timespace();
|
||||
|
||||
@@ -588,7 +588,7 @@ static void *get_nearest_action_key (float *selx, short *sel, short *ret_type, b
|
||||
areamouseco_to_ipoco(G.v2d, mval, &rectf.xmax, &rectf.ymax);
|
||||
|
||||
/* if action is mapped in NLA, it returns a correction */
|
||||
if (G.saction->pin==0 && OBACT && datatype==ACTCONT_ACTION) {
|
||||
if (NLA_ACTION_SCALED && datatype==ACTCONT_ACTION) {
|
||||
xmin= get_action_frame(OBACT, rectf.xmin);
|
||||
xmax= get_action_frame(OBACT, rectf.xmax);
|
||||
}
|
||||
@@ -773,7 +773,7 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
getmouseco_areawin (mvals);
|
||||
areamouseco_to_ipoco(G.v2d, mvals, &sval[0], &sval[1]);
|
||||
|
||||
if(G.saction->pin==0 && OBACT)
|
||||
if (NLA_ACTION_SCALED)
|
||||
sval[0]= get_action_frame(OBACT, sval[0]);
|
||||
|
||||
/* used for drawing */
|
||||
@@ -826,10 +826,10 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
getmouseco_areawin (mvalc);
|
||||
areamouseco_to_ipoco(G.v2d, mvalc, &cval[0], &cval[1]);
|
||||
|
||||
if(G.saction->pin==0 && OBACT)
|
||||
if (NLA_ACTION_SCALED)
|
||||
cval[0]= get_action_frame(OBACT, cval[0]);
|
||||
|
||||
if(mode=='t')
|
||||
if (mode=='t')
|
||||
G.saction->timeslide= cval[0];
|
||||
|
||||
if (!firsttime && lastcval[0]==cval[0] && lastcval[1]==cval[1]) {
|
||||
@@ -878,7 +878,7 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
}
|
||||
break;
|
||||
case 'g':
|
||||
if (G.saction->pin==0 && OBACT && context==ACTCONT_ACTION) {
|
||||
if (NLA_ACTION_SCALED && context==ACTCONT_ACTION) {
|
||||
deltax = get_action_frame_inv(OBACT, cval[0]);
|
||||
deltax -= get_action_frame_inv(OBACT, sval[0]);
|
||||
|
||||
@@ -919,7 +919,7 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
fac*=-1;
|
||||
}
|
||||
startx= (G.scene->r.cfra);
|
||||
if(G.saction->pin==0 && OBACT && context==ACTCONT_ACTION)
|
||||
if(NLA_ACTION_SCALED && context==ACTCONT_ACTION)
|
||||
startx= get_action_frame(OBACT, startx);
|
||||
|
||||
tv[i].loc[0]-= startx;
|
||||
@@ -934,7 +934,7 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
float snapval;
|
||||
|
||||
/* convert frame to nla-action time (if needed) */
|
||||
if (G.saction->pin==0 && OBACT && context==ACTCONT_ACTION)
|
||||
if (NLA_ACTION_SCALED && context==ACTCONT_ACTION)
|
||||
snapval= get_action_frame_inv(OBACT, tv[i].loc[0]);
|
||||
else
|
||||
snapval= tv[i].loc[0];
|
||||
@@ -943,7 +943,7 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
snapval= (float)(floor(snapval+0.5));
|
||||
|
||||
/* convert frame out of nla-action time */
|
||||
if (G.saction->pin==0 && OBACT && context==ACTCONT_ACTION)
|
||||
if (NLA_ACTION_SCALED && context==ACTCONT_ACTION)
|
||||
tv[i].loc[0]= get_action_frame(OBACT, snapval);
|
||||
else
|
||||
tv[i].loc[0]= snapval;
|
||||
@@ -955,7 +955,7 @@ static short transform_action_loop (TransVert *tv, int tvtot, char mode, short c
|
||||
headerprint(str);
|
||||
}
|
||||
else if (mode=='g') {
|
||||
if(G.saction->pin==0 && OBACT && context==ACTCONT_ACTION) {
|
||||
if (NLA_ACTION_SCALED && context==ACTCONT_ACTION) {
|
||||
/* recalculate the delta based on 'visual' times */
|
||||
fac = get_action_frame_inv(OBACT, cval[0]);
|
||||
fac -= get_action_frame_inv(OBACT, sval[0]);
|
||||
@@ -1133,7 +1133,7 @@ void snap_action_keys(short mode)
|
||||
|
||||
/* snap to frame */
|
||||
for (ale= act_data.first; ale; ale= ale->next) {
|
||||
if (datatype==ACTCONT_ACTION && G.saction->pin==0 && OBACT) {
|
||||
if (NLA_ACTION_SCALED && datatype==ACTCONT_ACTION) {
|
||||
actstrip_map_ipo_keys(OBACT, ale->key_data, 0, 1);
|
||||
snap_ipo_keys(ale->key_data, mode);
|
||||
actstrip_map_ipo_keys(OBACT, ale->key_data, 1, 1);
|
||||
@@ -1191,7 +1191,7 @@ void mirror_action_keys(short mode)
|
||||
|
||||
/* mirror */
|
||||
for (ale= act_data.first; ale; ale= ale->next) {
|
||||
if (datatype==ACTCONT_ACTION && G.saction->pin==0 && OBACT) {
|
||||
if (NLA_ACTION_SCALED && datatype==ACTCONT_ACTION) {
|
||||
actstrip_map_ipo_keys(OBACT, ale->key_data, 0, 1);
|
||||
mirror_ipo_keys(ale->key_data, mode);
|
||||
actstrip_map_ipo_keys(OBACT, ale->key_data, 1, 1);
|
||||
@@ -2120,7 +2120,7 @@ void markers_selectkeys_between (void)
|
||||
|
||||
/* select keys in-between */
|
||||
for (ale= act_data.first; ale; ale= ale->next) {
|
||||
if(G.saction->pin==0 && OBACT && datatype==ACTCONT_ACTION) {
|
||||
if(NLA_ACTION_SCALED && datatype==ACTCONT_ACTION) {
|
||||
actstrip_map_ipo_keys(OBACT, ale->key_data, 0, 1);
|
||||
borderselect_ipo_key(ale->key_data, min, max, SELECT_ADD);
|
||||
actstrip_map_ipo_keys(OBACT, ale->key_data, 1, 1);
|
||||
@@ -2189,7 +2189,7 @@ void column_select_action_keys(int mode)
|
||||
make_marker_cfra_list(&elems, 1);
|
||||
|
||||
/* apply scaled action correction if needed */
|
||||
if (G.saction->pin==0 && OBACT && datatype==ACTCONT_ACTION) {
|
||||
if (NLA_ACTION_SCALED && datatype==ACTCONT_ACTION) {
|
||||
for (ce= elems.first; ce; ce= ce->next)
|
||||
ce->cfra= get_action_frame(OBACT, ce->cfra);
|
||||
}
|
||||
@@ -2261,7 +2261,7 @@ void borderselect_action (void)
|
||||
areamouseco_to_ipoco(G.v2d, mval, &rectf.xmax, &rectf.ymax);
|
||||
|
||||
/* if action is mapped in NLA, it returns a correction */
|
||||
if (G.saction->pin==0 && OBACT && datatype==ACTCONT_ACTION) {
|
||||
if (NLA_ACTION_SCALED && datatype==ACTCONT_ACTION) {
|
||||
rectf.xmin= get_action_frame(OBACT, rectf.xmin);
|
||||
rectf.xmax= get_action_frame(OBACT, rectf.xmax);
|
||||
}
|
||||
|
||||
@@ -1372,7 +1372,7 @@ void mouse_select_ipo(void)
|
||||
marker=find_nearest_marker(1);
|
||||
|
||||
/* map ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 0, 0);
|
||||
}
|
||||
|
||||
@@ -1535,7 +1535,7 @@ void mouse_select_ipo(void)
|
||||
}
|
||||
|
||||
/* undo mapping of ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 1, 0);
|
||||
}
|
||||
|
||||
@@ -1990,7 +1990,7 @@ void add_vert_ipo(void)
|
||||
areamouseco_to_ipoco(G.v2d, mval, &x, &y);
|
||||
|
||||
/* convert click-time to ipo-time */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
x= get_action_frame(OBACT, x);
|
||||
}
|
||||
|
||||
@@ -2363,7 +2363,7 @@ void insertkey_editipo(void)
|
||||
}
|
||||
|
||||
/* convert cfra to ipo-time */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
cfra= get_action_frame(OBACT, cfra);
|
||||
}
|
||||
|
||||
@@ -3512,7 +3512,7 @@ void ipo_snap(short event)
|
||||
get_status_editipo();
|
||||
|
||||
/* map ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 0, 0);
|
||||
}
|
||||
|
||||
@@ -3585,7 +3585,7 @@ void ipo_snap(short event)
|
||||
}
|
||||
|
||||
/* undo mapping of ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 1, 0);
|
||||
}
|
||||
|
||||
@@ -3620,7 +3620,7 @@ void ipo_mirror(short mode)
|
||||
if (!ei) return;
|
||||
|
||||
/* map ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 0, 0);
|
||||
}
|
||||
|
||||
@@ -3679,7 +3679,7 @@ void ipo_mirror(short mode)
|
||||
}
|
||||
|
||||
/* undo mapping of ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 1, 0);
|
||||
}
|
||||
|
||||
@@ -4154,7 +4154,7 @@ void make_ipokey(void)
|
||||
else ik->flag= 0;
|
||||
|
||||
/* map ipo-keys for drawing/editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
ik->val= get_action_frame_inv(OBACT, ik->val);
|
||||
}
|
||||
|
||||
@@ -4258,7 +4258,7 @@ void make_ipokey_transform(Object *ob, ListBase *lb, int sel)
|
||||
ik= lb->first;
|
||||
while(ik) {
|
||||
/* map ipo-keys for drawing/editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
ik->val= get_action_frame_inv(OBACT, ik->val);
|
||||
}
|
||||
|
||||
@@ -4278,7 +4278,7 @@ void update_ipokey_val(void) /* after moving vertices */
|
||||
ik->val= ik->data[a]->vec[1][0];
|
||||
|
||||
/* map ipo-keys for drawing/editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
ik->val= get_action_frame_inv(OBACT, ik->val);
|
||||
}
|
||||
break;
|
||||
@@ -4529,7 +4529,7 @@ void remake_ipo_transverts(TransVert *transmain, float *dvec, int tot)
|
||||
|
||||
tv= transmain;
|
||||
for(a=0; a<tot; a++, tv++) {
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
tv->oldloc[0] = get_action_frame_inv(OBACT, tv->loc[0]);
|
||||
tv->oldloc[0]-= dvec[0];
|
||||
tv->oldloc[0] = get_action_frame(OBACT, tv->loc[0]);
|
||||
@@ -4715,7 +4715,7 @@ void transform_ipo(int mode)
|
||||
tv= transmain;
|
||||
for(a=0; a<tot; a++, tv++) {
|
||||
/* adjust times for scaled ipos */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
tv->loc[0] = get_action_frame_inv(OBACT, tv->oldloc[0]);
|
||||
tv->loc[0]+= vec[0];
|
||||
tv->loc[0] = get_action_frame(OBACT, tv->loc[0]);
|
||||
@@ -4749,7 +4749,7 @@ void transform_ipo(int mode)
|
||||
|
||||
for(a=0; a<tot; a++, tv++) {
|
||||
/* adjust times for scaled ipo's */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
tv->loc[0] = get_action_frame_inv(OBACT, tv->oldloc[0]) - get_action_frame_inv(OBACT, cent[0]);
|
||||
tv->loc[0]*= size[0];
|
||||
tv->loc[0]+= get_action_frame_inv(OBACT, cent[0]);
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
#include "BKE_key.h"
|
||||
#include "BKE_utildefines.h"
|
||||
|
||||
#include "BIF_editaction.h"
|
||||
#include "BIF_interface.h"
|
||||
#include "BIF_screen.h"
|
||||
#include "BIF_space.h"
|
||||
@@ -927,7 +928,7 @@ void borderselect_ipo(void)
|
||||
|
||||
if(val) {
|
||||
/* map ipo-points for editing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 0, 0);
|
||||
}
|
||||
|
||||
@@ -979,7 +980,7 @@ void borderselect_ipo(void)
|
||||
}
|
||||
|
||||
/* undo mapping of ipo-points for drawing if scaled ipo */
|
||||
if (OBACT && OBACT->action && G.sipo->pin==0 && G.sipo->actname) {
|
||||
if (NLA_IPO_SCALED) {
|
||||
actstrip_map_ipo_keys(OBACT, G.sipo->ipo, 1, 0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user