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>2018-11-21 04:39:05 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-11-21 04:58:06 +0300
commita86a1292f3ae9e303dddbf7c974790d58251e07b (patch)
tree4b6c34785c65a6aee9feae48eab22093f891a444 /source/blender/editors/transform/transform_gizmo_extrude_3d.c
parent774471dd450f8eb203928c62bdd1730494647078 (diff)
Gizmo: workaround for extrude modifying normals for XYZ axis
This was done for the normal gizmo, but not the XYZ handles.
Diffstat (limited to 'source/blender/editors/transform/transform_gizmo_extrude_3d.c')
-rw-r--r--source/blender/editors/transform/transform_gizmo_extrude_3d.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/editors/transform/transform_gizmo_extrude_3d.c b/source/blender/editors/transform/transform_gizmo_extrude_3d.c
index 2281bd91569..404b44f7024 100644
--- a/source/blender/editors/transform/transform_gizmo_extrude_3d.c
+++ b/source/blender/editors/transform/transform_gizmo_extrude_3d.c
@@ -312,11 +312,20 @@ static void gizmo_mesh_extrude_refresh(const bContext *C, wmGizmoGroup *gzgroup)
WM_gizmo_set_flag(ggd->adjust, WM_GIZMO_HIDDEN, !has_redo);
/* Operator properties. */
+
+ /* Workaround for extrude action modifying normals. */
if (use_normal) {
wmGizmoOpElem *gzop = WM_gizmo_operator_get(ggd->invoke_xyz_no[3], 0);
PointerRNA macroptr = RNA_pointer_get(&gzop->ptr, "TRANSFORM_OT_translate");
RNA_float_set_array(&macroptr, "constraint_matrix", &ggd->data.normal_mat3[0][0]);
}
+ if (ggd->data.orientation_type == V3D_MANIP_NORMAL) {
+ for (int i = 0; i < 3; i++) {
+ wmGizmoOpElem *gzop = WM_gizmo_operator_get(ggd->invoke_xyz_no[i], 0);
+ PointerRNA macroptr = RNA_pointer_get(&gzop->ptr, "TRANSFORM_OT_translate");
+ RNA_float_set_array(&macroptr, "constraint_matrix", &ggd->data.normal_mat3[0][0]);
+ }
+ }
/* Redo with current settings. */
if (has_redo) {