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>2019-02-27 16:19:37 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-02-27 16:23:43 +0300
commit8a432c1a4061492fbb0b8c1880a2408444e8009a (patch)
tree51484586263b0dbe505208fdbf54cc970f455f0d /source/blender/editors/transform/transform_gizmo_3d.c
parent048088e1d2435d249f36feb4774d14aeaf1293e9 (diff)
Transform: shear redo support for other orientations
Shear gizmo now uses a single orientation and sets different ortho axis instead of constructing a different matrix for each handle - allowing the redo panel to select orientations.
Diffstat (limited to 'source/blender/editors/transform/transform_gizmo_3d.c')
-rw-r--r--source/blender/editors/transform/transform_gizmo_3d.c19
1 files changed, 7 insertions, 12 deletions
diff --git a/source/blender/editors/transform/transform_gizmo_3d.c b/source/blender/editors/transform/transform_gizmo_3d.c
index 1839b08f6a1..7cf526f69fc 100644
--- a/source/blender/editors/transform/transform_gizmo_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_3d.c
@@ -2203,18 +2203,13 @@ static void WIDGETGROUP_xform_shear_refresh(const bContext *C, wmGizmoGroup *gzg
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]);
- 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]);
- }
- float orient_matrix[3][3];
- cross_v3_v3v3(orient_matrix[0], tbounds.axis[i_ortho_a], axis);
- copy_v3_v3(orient_matrix[1], tbounds.axis[i_ortho_a]);
- copy_v3_v3(orient_matrix[2], axis);
- RNA_float_set_array(&gzop->ptr, "orient_matrix", &orient_matrix[0][0]);
+ RNA_float_set_array(&gzop->ptr, "orient_matrix", &tbounds.axis[0][0]);
+ RNA_enum_set(&gzop->ptr, "orient_type", orient_slot->type);
+ RNA_enum_set(&gzop->ptr, "orient_matrix_type", orient_slot->type);
+
+ RNA_enum_set(&gzop->ptr, "orient_axis", i_ortho_b);
+ RNA_enum_set(&gzop->ptr, "orient_axis_ortho", i_ortho_a);
+
mul_v3_fl(gz->matrix_basis[0], 0.5f);
mul_v3_fl(gz->matrix_basis[1], 6.0f);
}