Fix T38407: Bone roll calculation flips local axes at wrong rotation angle
authorBastien Montagne <montagne29@wanadoo.fr>
Fri, 28 Feb 2014 09:47:28 +0000 (10:47 +0100)
committerBastien Montagne <montagne29@wanadoo.fr>
Fri, 28 Feb 2014 09:47:28 +0000 (10:47 +0100)
Just remove that rotation special case for now, at least fixes the glitch along Z axis when rotating around Y axis in report.

Anyway, there is no reason for such special handling, we do not have real rotation in editbone...

source/blender/editors/transform/transform_generics.c

index af4beff4bc9ee2024939501c337374c316b26db5..8e7e5c4c1cefa0b58b41fa8990396cf4c95a31bc 100644 (file)
@@ -812,17 +812,12 @@ static void recalcData_objects(TransInfo *t)
                                                }
                                                else {
                                                        copy_v3_v3(up_axis, td->axismtx[2]);
-                                                       
-                                                       if (t->mode != TFM_ROTATION) {
-                                                               sub_v3_v3v3(vec, ebo->tail, ebo->head);
-                                                               normalize_v3(vec);
-                                                               rotation_between_vecs_to_quat(qrot, td->axismtx[1], vec);
-                                                               mul_qt_v3(qrot, up_axis);
-                                                       }
-                                                       else {
-                                                               mul_m3_v3(t->mat, up_axis);
-                                                       }
-                                                       
+
+                                                       sub_v3_v3v3(vec, ebo->tail, ebo->head);
+                                                       normalize_v3(vec);
+                                                       rotation_between_vecs_to_quat(qrot, td->axismtx[1], vec);
+                                                       mul_qt_v3(qrot, up_axis);
+
                                                        /* roll has a tendency to flip in certain orientations - [#34283], [#33974] */
                                                        roll = ED_rollBoneToVector(ebo, up_axis, false);
                                                        ebo->roll = angle_compat_rad(roll, td->ival);