Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2012-12-18 09:29:56 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-12-18 09:29:56 +0400
commitdd68223c720c951b8e8f54a8664dab34270b985d (patch)
tree5e860ffbc26e86f6eeb7bf5f9e07e88519292cf0
parente72239c6a45173c0d23868c8e66b0926dcf2fd9c (diff)
fix [#33575] Manipulator showing incorrect local axes in armature pose mode.
-rw-r--r--source/blender/editors/transform/transform_manipulator.c10
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;