From 973740168845e2f4a6f47bae8030ddd36a835633 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 22 May 2017 21:10:18 +1000 Subject: Fix T51169: Push/pull fails w/ local lock axis --- source/blender/editors/transform/transform.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source/blender/editors/transform/transform.c') diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index cebc024fab9..d786c755529 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -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); -- cgit v1.2.3