From f67d1412dee1eff6ef3ce8085c8a45349d5ad79f Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sat, 29 Oct 2022 11:50:16 +0200 Subject: [PATCH] Add undo/redo and navmesh dirtying when using selection rotate shortcut (R key) #765 --- Source/Editor/Gizmo/TransformGizmoBase.cs | 4 ++-- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 11 ++++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Source/Editor/Gizmo/TransformGizmoBase.cs b/Source/Editor/Gizmo/TransformGizmoBase.cs index 13ebece7c..c3ba6a165 100644 --- a/Source/Editor/Gizmo/TransformGizmoBase.cs +++ b/Source/Editor/Gizmo/TransformGizmoBase.cs @@ -86,7 +86,7 @@ namespace FlaxEditor.Gizmo /// /// Starts the objects transforming (optionally with duplicate). /// - protected void StartTransforming() + public void StartTransforming() { // Check if can start new action var count = SelectionCount; @@ -119,7 +119,7 @@ namespace FlaxEditor.Gizmo /// /// Ends the objects transforming. /// - protected void EndTransforming() + public void EndTransforming() { // Check if wasn't working at all if (!_isTransforming) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index 066ab1c00..1e9453bc5 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -329,7 +329,6 @@ namespace FlaxEditor.Viewport var buttonBB = translateSnappingCM.AddButton("Bounding Box"); buttonBB.Tag = -1.0f; - translateSnappingCM.ButtonClicked += OnWidgetTranslateSnapClick; translateSnappingCM.VisibleChanged += OnWidgetTranslateSnapShowHide; _translateSnapping.Parent = translateSnappingWidget; @@ -711,10 +710,10 @@ namespace FlaxEditor.Viewport { var win = (WindowRootControl)Root; var selection = _editor.SceneEditing.Selection; - var IsShiftDown = win.GetKey(KeyboardKeys.Shift); + var isShiftDown = win.GetKey(KeyboardKeys.Shift); Quaternion rotationDelta; - if(IsShiftDown) + if (isShiftDown) rotationDelta = Quaternion.Euler(0.0f, -45.0f, 0.0f); else rotationDelta = Quaternion.Euler(0.0f, 45.0f, 0.0f); @@ -722,15 +721,16 @@ namespace FlaxEditor.Viewport bool useObjCenter = TransformGizmo.ActivePivot == TransformGizmoBase.PivotType.ObjectCenter; Vector3 gizmoPosition = TransformGizmo.Position; - //PE: Rotate selected objects. + // Rotate selected objects bool isPlayMode = Editor.Instance.StateMachine.IsPlayMode; + TransformGizmo.StartTransforming(); for (int i = 0; i < selection.Count; i++) { var obj = selection[i]; if (isPlayMode && obj.CanTransform == false) continue; var trans = obj.Transform; - Vector3 pivotOffset = trans.Translation - gizmoPosition; + var pivotOffset = trans.Translation - gizmoPosition; if (useObjCenter || pivotOffset.IsZero) { trans.Orientation *= Quaternion.Invert(trans.Orientation) * rotationDelta * trans.Orientation; @@ -745,6 +745,7 @@ namespace FlaxEditor.Viewport } obj.Transform = trans; } + TransformGizmo.EndTransforming(); } ///