[Bf-blender-cvs] [a86a1292f3a] blender2.8: Gizmo: workaround for extrude modifying normals for XYZ axis

Campbell Barton noreply at git.blender.org
Wed Nov 21 02:58:27 CET 2018


Commit: a86a1292f3ae9e303dddbf7c974790d58251e07b
Author: Campbell Barton
Date:   Wed Nov 21 12:39:05 2018 +1100
Branches: blender2.8
https://developer.blender.org/rBa86a1292f3ae9e303dddbf7c974790d58251e07b

Gizmo: workaround for extrude modifying normals for XYZ axis

This was done for the normal gizmo, but not the XYZ handles.

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

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

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

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) {



More information about the Bf-blender-cvs mailing list