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:
authorGermano Cavalcante <germano.costa@ig.com.br>2020-11-27 16:41:33 +0300
committerJeroen Bakker <jeroen@blender.org>2021-01-13 16:51:41 +0300
commit87310c0af164db5b7f3de33cf8612c4f490b112d (patch)
treeea92a7a87c1628d562c04c59de053c081d0d0352
parentb6e84d3edffde553d6dd58bbc48ba77bef01625e (diff)
Fix T83092: Direction of rotation with View orientation changed in 2.91
The change was intentional so that the orientation matrices match (`rv3d->viewinv` becomes equal to the orientation matrix). But, although in a projection matrix the Z axis is negative, this should not be so from the user's point of view. So the solution here is to negate the Z axis when the View orientation is chosen. This affects all modes, but is only evident for rotation. --- Another change here is to use the final rotation value (`values_final`) for the gizmo drawing since this value can be changed by the mode.
-rw-r--r--source/blender/editors/transform/transform_gizmo_3d.c4
-rw-r--r--source/blender/editors/transform/transform_mode_shear.c4
-rw-r--r--source/blender/editors/transform/transform_orientations.c1
3 files changed, 5 insertions, 4 deletions
diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c
index a22f6c35139..b51335c71ed 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -1304,7 +1304,7 @@ void drawDial3d(const TransInfo *t)
}
else {
axis_idx = MAN_AXIS_ROT_C;
- copy_v3_v3(mat_basis[2], t->spacemtx[t->orient_axis]);
+ negate_v3_v3(mat_basis[2], t->spacemtx[t->orient_axis]);
scale *= 1.2f;
line_with -= 1.0f;
}
@@ -1352,7 +1352,7 @@ void drawDial3d(const TransInfo *t)
false,
&(struct Dial3dParams){
.draw_options = ED_GIZMO_DIAL_DRAW_FLAG_ANGLE_VALUE,
- .angle_delta = t->values[0],
+ .angle_delta = t->values_final[0],
.angle_increment = increment,
});
diff --git a/source/blender/editors/transform/transform_mode_shear.c b/source/blender/editors/transform/transform_mode_shear.c
index dfc6f69b341..067a309ede8 100644
--- a/source/blender/editors/transform/transform_mode_shear.c
+++ b/source/blender/editors/transform/transform_mode_shear.c
@@ -58,12 +58,12 @@ static void initShear_mouseInputMode(TransInfo *t)
/* Needed for axis aligned view gizmo. */
if (t->orient[t->orient_curr].type == V3D_ORIENT_VIEW) {
if (t->orient_axis_ortho == 0) {
- if (t->center2d[1] > t->mouse.imval[1]) {
+ if (t->center2d[1] < t->mouse.imval[1]) {
dir_flip = !dir_flip;
}
}
else if (t->orient_axis_ortho == 1) {
- if (t->center2d[0] > t->mouse.imval[0]) {
+ if (t->center2d[0] < t->mouse.imval[0]) {
dir_flip = !dir_flip;
}
}
diff --git a/source/blender/editors/transform/transform_orientations.c b/source/blender/editors/transform/transform_orientations.c
index b353dba9e54..031cff72095 100644
--- a/source/blender/editors/transform/transform_orientations.c
+++ b/source/blender/editors/transform/transform_orientations.c
@@ -552,6 +552,7 @@ short ED_transform_calc_orientation_from_type_ex(const bContext *C,
if (rv3d != NULL) {
copy_m3_m4(r_mat, rv3d->viewinv);
normalize_m3(r_mat);
+ negate_v3(r_mat[2]);
}
else {
unit_m3(r_mat);