diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-12-18 09:29:56 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-12-18 09:29:56 +0400 |
commit | dd68223c720c951b8e8f54a8664dab34270b985d (patch) | |
tree | 5e860ffbc26e86f6eeb7bf5f9e07e88519292cf0 | |
parent | e72239c6a45173c0d23868c8e66b0926dcf2fd9c (diff) |
fix [#33575] Manipulator showing incorrect local axes in armature pose mode.
-rw-r--r-- | source/blender/editors/transform/transform_manipulator.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_manipulator.c b/source/blender/editors/transform/transform_manipulator.c index 757fdfa2445..80c67cb3f4c 100644 --- a/source/blender/editors/transform/transform_manipulator.c +++ b/source/blender/editors/transform/transform_manipulator.c @@ -572,6 +572,16 @@ int calc_manipulator_stats(const bContext *C) } /* no break we define 'normal' as 'local' in Object mode */ case V3D_MANIP_LOCAL: + if (ob->mode & OB_MODE_POSE) { + /* each bone moves on its own local axis, but to avoid confusion, + * use the active pones axis for display [#33575], this works as expected on a single bone + * and users who select many bones will understand whats going on and what local means + * when they start transforming */ + float mat[3][3]; + ED_getTransformOrientationMatrix(C, mat, (v3d->around == V3D_ACTIVE)); + copy_m4_m3(rv3d->twmat, mat); + break; + } copy_m4_m4(rv3d->twmat, ob->obmat); normalize_m4(rv3d->twmat); break; |