From 2c3007eb2b479ee2d776a5571a2bcec67594e4ef Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 17 Oct 2022 19:55:30 -0500 Subject: [PATCH 1/7] cache viewport snapping enabled --- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index eb82a42bf..e4da6f26f 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -6,6 +6,7 @@ using FlaxEditor.Content; using FlaxEditor.Gizmo; using FlaxEditor.GUI.ContextMenu; using FlaxEditor.GUI.Drag; +using FlaxEditor.Options; using FlaxEditor.SceneGraph; using FlaxEditor.SceneGraph.Actors; using FlaxEditor.Scripting; @@ -223,6 +224,12 @@ namespace FlaxEditor.Viewport editor.SceneEditing.SelectionChanged += OnSelectionChanged; + // initialize snapping enabled from cached values + string cachedSnapState; + TransformGizmo.TranslationSnapEnable = _editor.ProjectCache.TryGetCustomData("TranslateSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); + TransformGizmo.RotationSnapEnabled = _editor.ProjectCache.TryGetCustomData("RotationSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); + TransformGizmo.ScaleSnapEnabled = _editor.ProjectCache.TryGetCustomData("ScaleSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); + // Transform space widget var transformSpaceWidget = new ViewportWidgetsContainer(ViewportWidgetLocation.UpperRight); var transformSpaceToggle = new ViewportWidgetButton(string.Empty, editor.Icons.Globe32, null, true) @@ -523,16 +530,22 @@ namespace FlaxEditor.Viewport private void OnTranslateSnappingToggle(ViewportWidgetButton button) { TransformGizmo.TranslationSnapEnable = !TransformGizmo.TranslationSnapEnable; + // cache value on next save + _editor.ProjectCache.SetCustomData("TranslateSnapState", TransformGizmo.TranslationSnapEnable.ToString()); } private void OnRotateSnappingToggle(ViewportWidgetButton button) { TransformGizmo.RotationSnapEnabled = !TransformGizmo.RotationSnapEnabled; + // cache value on next save + _editor.ProjectCache.SetCustomData("RotationSnapState", TransformGizmo.RotationSnapEnabled.ToString()); } private void OnScaleSnappingToggle(ViewportWidgetButton button) { TransformGizmo.ScaleSnapEnabled = !TransformGizmo.ScaleSnapEnabled; + // cache value on next save + _editor.ProjectCache.SetCustomData("ScaleSnapState", TransformGizmo.ScaleSnapEnabled.ToString()); } private void OnTransformSpaceToggle(ViewportWidgetButton button) From 212fc0838aa187fcf3a31504e7268c8fd257c40e Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 17 Oct 2022 19:57:40 -0500 Subject: [PATCH 2/7] remove not needed include --- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index e4da6f26f..140908faa 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -6,7 +6,6 @@ using FlaxEditor.Content; using FlaxEditor.Gizmo; using FlaxEditor.GUI.ContextMenu; using FlaxEditor.GUI.Drag; -using FlaxEditor.Options; using FlaxEditor.SceneGraph; using FlaxEditor.SceneGraph.Actors; using FlaxEditor.Scripting; From 456934c737114434fa6b29c68e9a3b5ebc5ff11a Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 17 Oct 2022 21:18:46 -0500 Subject: [PATCH 3/7] Added caching and loading snapping values --- .../Editor/Viewport/MainEditorGizmoViewport.cs | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index 140908faa..d85079a1f 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -229,6 +229,21 @@ namespace FlaxEditor.Viewport TransformGizmo.RotationSnapEnabled = _editor.ProjectCache.TryGetCustomData("RotationSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); TransformGizmo.ScaleSnapEnabled = _editor.ProjectCache.TryGetCustomData("ScaleSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); + // initialize snap value if there is one cached + string cachedSnapValue; + if (_editor.ProjectCache.TryGetCustomData("TranslateSnapValue", out cachedSnapValue)) + { + TransformGizmo.TranslationSnapValue = float.Parse(cachedSnapValue); + } + if (_editor.ProjectCache.TryGetCustomData("RotationSnapValue", out cachedSnapValue)) + { + TransformGizmo.RotationSnapValue = float.Parse(cachedSnapValue); + } + if (_editor.ProjectCache.TryGetCustomData("ScaleSnapValue", out cachedSnapValue)) + { + TransformGizmo.ScaleSnapValue = float.Parse(cachedSnapValue); + } + // Transform space widget var transformSpaceWidget = new ViewportWidgetsContainer(ViewportWidgetLocation.UpperRight); var transformSpaceToggle = new ViewportWidgetButton(string.Empty, editor.Icons.Globe32, null, true) @@ -579,6 +594,7 @@ namespace FlaxEditor.Viewport var v = (float)button.Tag; TransformGizmo.ScaleSnapValue = v; _scaleSnapping.Text = v.ToString(); + _editor.ProjectCache.SetCustomData("ScaleSnapValue", TransformGizmo.ScaleSnapValue.ToString("N")); } private void OnWidgetScaleSnapShowHide(Control control) @@ -616,6 +632,7 @@ namespace FlaxEditor.Viewport var v = (float)button.Tag; TransformGizmo.RotationSnapValue = v; _rotateSnapping.Text = v.ToString(); + _editor.ProjectCache.SetCustomData("RotationSnapValue", TransformGizmo.RotationSnapValue.ToString("N")); } private void OnWidgetRotateSnapShowHide(Control control) @@ -652,6 +669,7 @@ namespace FlaxEditor.Viewport var v = (float)button.Tag; TransformGizmo.TranslationSnapValue = v; _translateSnapping.Text = v.ToString(); + _editor.ProjectCache.SetCustomData("TranslateSnapValue", TransformGizmo.TranslationSnapValue.ToString("N")); } private void OnWidgetTranslateSnapShowHide(Control control) From 6c470c1247d349757b919c6cbc7fbeb79e0d35dc Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Mon, 17 Oct 2022 21:29:58 -0500 Subject: [PATCH 4/7] added caching of transform space and loading --- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index d85079a1f..0933a5fde 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -243,7 +243,16 @@ namespace FlaxEditor.Viewport { TransformGizmo.ScaleSnapValue = float.Parse(cachedSnapValue); } - + + // initialize transform space if one is cached + string cachedTransformSpace; + if (_editor.ProjectCache.TryGetCustomData("TransformSpaceState", out cachedTransformSpace)) + { + TransformGizmoBase.TransformSpace space; + Enum.TryParse(cachedTransformSpace, out space); + TransformGizmo.ActiveTransformSpace = space; + } + // Transform space widget var transformSpaceWidget = new ViewportWidgetsContainer(ViewportWidgetLocation.UpperRight); var transformSpaceToggle = new ViewportWidgetButton(string.Empty, editor.Icons.Globe32, null, true) @@ -565,6 +574,7 @@ namespace FlaxEditor.Viewport private void OnTransformSpaceToggle(ViewportWidgetButton button) { TransformGizmo.ToggleTransformSpace(); + _editor.ProjectCache.SetCustomData("TransformSpaceState", TransformGizmo.ActiveTransformSpace.ToString()); } private void OnGizmoModeChanged() From 9f9cc0e1ecc7e5c5d1a2c65999216c73f5138b58 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Wed, 19 Oct 2022 07:22:09 -0500 Subject: [PATCH 5/7] cleaned up comments --- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index 0933a5fde..da9bd585d 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -553,27 +553,28 @@ namespace FlaxEditor.Viewport private void OnTranslateSnappingToggle(ViewportWidgetButton button) { TransformGizmo.TranslationSnapEnable = !TransformGizmo.TranslationSnapEnable; - // cache value on next save + // cache value _editor.ProjectCache.SetCustomData("TranslateSnapState", TransformGizmo.TranslationSnapEnable.ToString()); } private void OnRotateSnappingToggle(ViewportWidgetButton button) { TransformGizmo.RotationSnapEnabled = !TransformGizmo.RotationSnapEnabled; - // cache value on next save + // cache value _editor.ProjectCache.SetCustomData("RotationSnapState", TransformGizmo.RotationSnapEnabled.ToString()); } private void OnScaleSnappingToggle(ViewportWidgetButton button) { TransformGizmo.ScaleSnapEnabled = !TransformGizmo.ScaleSnapEnabled; - // cache value on next save + // cache value _editor.ProjectCache.SetCustomData("ScaleSnapState", TransformGizmo.ScaleSnapEnabled.ToString()); } private void OnTransformSpaceToggle(ViewportWidgetButton button) { TransformGizmo.ToggleTransformSpace(); + // cache value _editor.ProjectCache.SetCustomData("TransformSpaceState", TransformGizmo.ActiveTransformSpace.ToString()); } @@ -604,6 +605,7 @@ namespace FlaxEditor.Viewport var v = (float)button.Tag; TransformGizmo.ScaleSnapValue = v; _scaleSnapping.Text = v.ToString(); + // cache value _editor.ProjectCache.SetCustomData("ScaleSnapValue", TransformGizmo.ScaleSnapValue.ToString("N")); } @@ -642,6 +644,7 @@ namespace FlaxEditor.Viewport var v = (float)button.Tag; TransformGizmo.RotationSnapValue = v; _rotateSnapping.Text = v.ToString(); + // cache value _editor.ProjectCache.SetCustomData("RotationSnapValue", TransformGizmo.RotationSnapValue.ToString("N")); } @@ -679,6 +682,7 @@ namespace FlaxEditor.Viewport var v = (float)button.Tag; TransformGizmo.TranslationSnapValue = v; _translateSnapping.Text = v.ToString(); + // cache value _editor.ProjectCache.SetCustomData("TranslateSnapValue", TransformGizmo.TranslationSnapValue.ToString("N")); } From 13150ea553ea67752224426a730cc94f8c98a984 Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Wed, 19 Oct 2022 15:25:42 -0500 Subject: [PATCH 6/7] changed snap enable to still use default values if cache data doesnt exist --- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index da9bd585d..80393302b 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -225,9 +225,18 @@ namespace FlaxEditor.Viewport // initialize snapping enabled from cached values string cachedSnapState; - TransformGizmo.TranslationSnapEnable = _editor.ProjectCache.TryGetCustomData("TranslateSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); - TransformGizmo.RotationSnapEnabled = _editor.ProjectCache.TryGetCustomData("RotationSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); - TransformGizmo.ScaleSnapEnabled = _editor.ProjectCache.TryGetCustomData("ScaleSnapState", out cachedSnapState) && Boolean.Parse(cachedSnapState); + if (_editor.ProjectCache.TryGetCustomData("TranslateSnapState", out cachedSnapState)) + { + TransformGizmo.TranslationSnapEnable = Boolean.Parse(cachedSnapState); + } + if (_editor.ProjectCache.TryGetCustomData("RotationSnapState", out cachedSnapState)) + { + TransformGizmo.RotationSnapEnabled = Boolean.Parse(cachedSnapState); + } + if (_editor.ProjectCache.TryGetCustomData("ScaleSnapState", out cachedSnapState)) + { + TransformGizmo.ScaleSnapEnabled = Boolean.Parse(cachedSnapState); + } // initialize snap value if there is one cached string cachedSnapValue; From dbcaf28f39e7b8808e641996428a7825a986ea2d Mon Sep 17 00:00:00 2001 From: Chandler Cox Date: Wed, 19 Oct 2022 15:28:59 -0500 Subject: [PATCH 7/7] added if check on enum parse --- Source/Editor/Viewport/MainEditorGizmoViewport.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Source/Editor/Viewport/MainEditorGizmoViewport.cs b/Source/Editor/Viewport/MainEditorGizmoViewport.cs index 80393302b..93ac05373 100644 --- a/Source/Editor/Viewport/MainEditorGizmoViewport.cs +++ b/Source/Editor/Viewport/MainEditorGizmoViewport.cs @@ -257,9 +257,10 @@ namespace FlaxEditor.Viewport string cachedTransformSpace; if (_editor.ProjectCache.TryGetCustomData("TransformSpaceState", out cachedTransformSpace)) { - TransformGizmoBase.TransformSpace space; - Enum.TryParse(cachedTransformSpace, out space); - TransformGizmo.ActiveTransformSpace = space; + if (Enum.TryParse(cachedTransformSpace, out TransformGizmoBase.TransformSpace space)) + { + TransformGizmo.ActiveTransformSpace = space; + } } // Transform space widget