Split up recalcData() function in transform_generics.c into smaller

functions based on editor types

This could be split up further in future if there's such a need, but
this should already be sufficient. Most notably required since the NLA
recalc stuff was taking quite a few lines within that block
This commit is contained in:
2011-07-22 07:25:52 +00:00
parent 4532bd731d
commit 1ca2a6f24f

View File

@@ -323,18 +323,9 @@ static int fcu_test_selected(FCurve *fcu)
return 0;
}
/* called for updating while transform acts, once per redraw */
void recalcData(TransInfo *t)
/* helper for recalcData() - for Action Editor transforms */
static void recalcData_actedit(TransInfo *t)
{
Base *base = t->scene->basact;
if (t->spacetype==SPACE_NODE) {
flushTransNodes(t);
}
else if (t->spacetype==SPACE_SEQ) {
flushTransSeq(t);
}
else if (t->spacetype == SPACE_ACTION) {
Scene *scene= t->scene;
SpaceAction *saction= (SpaceAction *)t->sa->spacedata.first;
@@ -379,9 +370,12 @@ void recalcData(TransInfo *t)
BLI_freelistN(&anim_data);
}
}
else if (t->spacetype == SPACE_IPO) {
Scene *scene;
/* helper for recalcData() - for Graph Editor transforms */
static void recalcData_graphedit(TransInfo *t)
{
SpaceIpo *sipo= (SpaceIpo *)t->sa->spacedata.first;
Scene *scene;
ListBase anim_data = {NULL, NULL};
bAnimContext ac= {NULL};
@@ -441,7 +435,10 @@ void recalcData(TransInfo *t)
/* now free temp channels */
BLI_freelistN(&anim_data);
}
else if (t->spacetype == SPACE_NLA) {
/* helper for recalcData() - for NLA Editor transforms */
static void recalcData_nla(TransInfo *t)
{
TransDataNla *tdn= (TransDataNla *)t->customData;
SpaceNla *snla= (SpaceNla *)t->sa->spacedata.first;
Scene *scene= t->scene;
@@ -620,18 +617,11 @@ void recalcData(TransInfo *t)
}
}
}
else if (t->spacetype == SPACE_IMAGE) {
if (t->obedit && t->obedit->type == OB_MESH) {
SpaceImage *sima= t->sa->spacedata.first;
flushTransUVs(t);
if(sima->flag & SI_LIVE_UNWRAP)
ED_uvedit_live_unwrap_re_solve();
DAG_id_tag_update(t->obedit->data, 0);
}
}
else if (t->spacetype == SPACE_VIEW3D) {
/* helper for recalcData() - for 3d-view transforms */
static void recalcData_view3d(TransInfo *t)
{
Base *base = t->scene->basact;
if (t->obedit) {
if ELEM(t->obedit->type, OB_CURVE, OB_SURF) {
@@ -651,7 +641,8 @@ void recalcData(TransInfo *t)
calchandlesNurb(nu); /* Cant do testhandlesNurb here, it messes up the h1 and h2 flags */
nu= nu->next;
}
} else {
}
else {
/* Normal updating */
while(nu) {
test2DNurb(nu);
@@ -841,6 +832,39 @@ void recalcData(TransInfo *t)
}
}
}
/* called for updating while transform acts, once per redraw */
void recalcData(TransInfo *t)
{
if (t->spacetype==SPACE_NODE) {
flushTransNodes(t);
}
else if (t->spacetype==SPACE_SEQ) {
flushTransSeq(t);
}
else if (t->spacetype == SPACE_ACTION) {
recalcData_actedit(t);
}
else if (t->spacetype == SPACE_IPO) {
recalcData_graphedit(t);
}
else if (t->spacetype == SPACE_NLA) {
recalcData_nla(t);
}
else if (t->spacetype == SPACE_IMAGE) {
if (t->obedit && t->obedit->type == OB_MESH) {
SpaceImage *sima= t->sa->spacedata.first;
flushTransUVs(t);
if(sima->flag & SI_LIVE_UNWRAP)
ED_uvedit_live_unwrap_re_solve();
DAG_id_tag_update(t->obedit->data, 0);
}
}
else if (t->spacetype == SPACE_VIEW3D) {
recalcData_view3d(t);
}
}
void drawLine(TransInfo *t, float *center, float *dir, char axis, short options)