Fix T51169: Push/pull fails w/ local lock axis

This commit is contained in:
Campbell Barton 2017-05-22 21:10:18 +10:00
parent 34b689892b
commit 9737401688
Notes: blender-bot 2023-04-04 07:45:26 +02:00
Referenced by issue #51169, Push/pull doesn't take object transformations into account
1 changed files with 6 additions and 2 deletions

View File

@ -4948,7 +4948,7 @@ static void initPushPull(TransInfo *t)
static void applyPushPull(TransInfo *t, const int UNUSED(mval[2]))
{
float vec[3], axis[3];
float vec[3], axis_global[3];
float distance;
int i;
char str[UI_MAX_DRAW_STR];
@ -4976,7 +4976,7 @@ static void applyPushPull(TransInfo *t, const int UNUSED(mval[2]))
}
if (t->con.applyRot && t->con.mode & CON_APPLY) {
t->con.applyRot(t, NULL, axis, NULL);
t->con.applyRot(t, NULL, axis_global, NULL);
}
for (i = 0; i < t->total; i++, td++) {
@ -4988,7 +4988,11 @@ static void applyPushPull(TransInfo *t, const int UNUSED(mval[2]))
sub_v3_v3v3(vec, t->center, td->center);
if (t->con.applyRot && t->con.mode & CON_APPLY) {
float axis[3];
copy_v3_v3(axis, axis_global);
t->con.applyRot(t, td, axis, NULL);
mul_m3_v3(td->smtx, axis);
if (isLockConstraint(t)) {
float dvec[3];
project_v3_v3v3(dvec, vec, axis);