Commit: 8e071e76de5ef75285bf14941508a86459642174
Author: Campbell Barton
Date:   Wed Oct 17 17:47:09 2018 +1100
Branches: blender2.8
https://developer.blender.org/rB8e071e76de5ef75285bf14941508a86459642174

Gizmo: change axis used for shear handles

The shear direction should be more obvious this way.

===================================================================

M       source/blender/editors/transform/transform_gizmo_3d.c

===================================================================

diff --git a/source/blender/editors/transform/transform_gizmo_3d.c 
b/source/blender/editors/transform/transform_gizmo_3d.c
index 98a0e880ef6..b9c984f7f21 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -2078,12 +2078,20 @@ static void WIDGETGROUP_xform_shear_refresh(const 
bContext *C, wmGizmoGroup *gzg
                                WM_gizmo_set_flag(gz, WM_GIZMO_MOVE_CURSOR, 
true);
 
                                wmGizmoOpElem *gzop = WM_gizmo_operator_get(gz, 
0);
-                               const int i_ortho = (i + j + 1) % 3;
-                               WM_gizmo_set_matrix_rotation_from_yz_axis(gz, 
rv3d->twmat[i_ortho], rv3d->twmat[i]);
+                               const int i_ortho_a = (i + j + 1) % 3;
+                               const int i_ortho_b = (i + (1 - j) + 1) % 3;
+                               WM_gizmo_set_matrix_rotation_from_yz_axis(gz, 
rv3d->twmat[i_ortho_a], rv3d->twmat[i]);
                                WM_gizmo_set_matrix_location(gz, 
rv3d->twmat[3]);
 
-                               RNA_float_set_array(&gzop->ptr, "axis", 
tbounds.axis[i]);
-                               RNA_float_set_array(&gzop->ptr, "axis_ortho", 
tbounds.axis[i_ortho]);
+                               float axis[3];
+                               if (j == 0) {
+                                       copy_v3_v3(axis, 
tbounds.axis[i_ortho_b]);
+                               }
+                               else {
+                                       negate_v3_v3(axis, 
tbounds.axis[i_ortho_b]);
+                               }
+                               RNA_float_set_array(&gzop->ptr, "axis", axis);
+                               RNA_float_set_array(&gzop->ptr, "axis_ortho", 
tbounds.axis[i_ortho_a]);
                                mul_v3_fl(gz->matrix_basis[0], 0.5f);
                                mul_v3_fl(gz->matrix_basis[1], 6.0f);
                        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to