Bugfix [#36203] Transformation bone constraint breaks Track To / Dumped Track

Limited crazy-space constraint correction for Transform constraint to only get
applied when only rotating bones with such constraints.
This commit is contained in:
Joshua Leung 2013-11-05 01:44:38 +00:00
parent 98be88653d
commit 7a10bacaf9
1 changed files with 11 additions and 3 deletions

View File

@ -4715,13 +4715,12 @@ static bool constraints_list_needinv(TransInfo *t, ListBase *list)
if ((con->flag & CONSTRAINT_DISABLE) == 0 && (con->enforce != 0.0f)) {
/* (affirmative) returns for specific constraints here... */
/* constraints that require this regardless */
if (ELEM6(con->type,
if (ELEM5(con->type,
CONSTRAINT_TYPE_CHILDOF,
CONSTRAINT_TYPE_FOLLOWPATH,
CONSTRAINT_TYPE_CLAMPTO,
CONSTRAINT_TYPE_OBJECTSOLVER,
CONSTRAINT_TYPE_FOLLOWTRACK,
CONSTRAINT_TYPE_TRANSFORM))
CONSTRAINT_TYPE_FOLLOWTRACK))
{
return true;
}
@ -4734,6 +4733,15 @@ static bool constraints_list_needinv(TransInfo *t, ListBase *list)
if ((data->flag & ROTLIKE_OFFSET) && (t->mode == TFM_ROTATION))
return true;
}
else if (con->type == CONSTRAINT_TYPE_TRANSFORM) {
/* Transform constraint needs it for rotation at least (r.57309),
* but doing so when translating may also mess things up [#36203]
*/
if (t->mode == TFM_ROTATION)
return true;
/* ??? (t->mode == TFM_SCALE) ? */
}
}
}
}