Merge branch 'cache-transform-snapping-state' of https://github.com/Tryibion/FlaxEngine into Tryibion-cache-transform-snapping-state

This commit is contained in:
Wojtek Figat
2022-10-23 14:20:49 +02:00

View File

@@ -223,6 +223,46 @@ namespace FlaxEditor.Viewport
editor.SceneEditing.SelectionChanged += OnSelectionChanged; editor.SceneEditing.SelectionChanged += OnSelectionChanged;
// initialize snapping enabled from cached values
string 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;
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);
}
// initialize transform space if one is cached
string cachedTransformSpace;
if (_editor.ProjectCache.TryGetCustomData("TransformSpaceState", out cachedTransformSpace))
{
if (Enum.TryParse(cachedTransformSpace, out TransformGizmoBase.TransformSpace space))
{
TransformGizmo.ActiveTransformSpace = space;
}
}
// Transform space widget // Transform space widget
var transformSpaceWidget = new ViewportWidgetsContainer(ViewportWidgetLocation.UpperRight); var transformSpaceWidget = new ViewportWidgetsContainer(ViewportWidgetLocation.UpperRight);
var transformSpaceToggle = new ViewportWidgetButton(string.Empty, editor.Icons.Globe32, null, true) var transformSpaceToggle = new ViewportWidgetButton(string.Empty, editor.Icons.Globe32, null, true)
@@ -523,21 +563,29 @@ namespace FlaxEditor.Viewport
private void OnTranslateSnappingToggle(ViewportWidgetButton button) private void OnTranslateSnappingToggle(ViewportWidgetButton button)
{ {
TransformGizmo.TranslationSnapEnable = !TransformGizmo.TranslationSnapEnable; TransformGizmo.TranslationSnapEnable = !TransformGizmo.TranslationSnapEnable;
// cache value
_editor.ProjectCache.SetCustomData("TranslateSnapState", TransformGizmo.TranslationSnapEnable.ToString());
} }
private void OnRotateSnappingToggle(ViewportWidgetButton button) private void OnRotateSnappingToggle(ViewportWidgetButton button)
{ {
TransformGizmo.RotationSnapEnabled = !TransformGizmo.RotationSnapEnabled; TransformGizmo.RotationSnapEnabled = !TransformGizmo.RotationSnapEnabled;
// cache value
_editor.ProjectCache.SetCustomData("RotationSnapState", TransformGizmo.RotationSnapEnabled.ToString());
} }
private void OnScaleSnappingToggle(ViewportWidgetButton button) private void OnScaleSnappingToggle(ViewportWidgetButton button)
{ {
TransformGizmo.ScaleSnapEnabled = !TransformGizmo.ScaleSnapEnabled; TransformGizmo.ScaleSnapEnabled = !TransformGizmo.ScaleSnapEnabled;
// cache value
_editor.ProjectCache.SetCustomData("ScaleSnapState", TransformGizmo.ScaleSnapEnabled.ToString());
} }
private void OnTransformSpaceToggle(ViewportWidgetButton button) private void OnTransformSpaceToggle(ViewportWidgetButton button)
{ {
TransformGizmo.ToggleTransformSpace(); TransformGizmo.ToggleTransformSpace();
// cache value
_editor.ProjectCache.SetCustomData("TransformSpaceState", TransformGizmo.ActiveTransformSpace.ToString());
} }
private void OnGizmoModeChanged() private void OnGizmoModeChanged()
@@ -567,6 +615,8 @@ namespace FlaxEditor.Viewport
var v = (float)button.Tag; var v = (float)button.Tag;
TransformGizmo.ScaleSnapValue = v; TransformGizmo.ScaleSnapValue = v;
_scaleSnapping.Text = v.ToString(); _scaleSnapping.Text = v.ToString();
// cache value
_editor.ProjectCache.SetCustomData("ScaleSnapValue", TransformGizmo.ScaleSnapValue.ToString("N"));
} }
private void OnWidgetScaleSnapShowHide(Control control) private void OnWidgetScaleSnapShowHide(Control control)
@@ -604,6 +654,8 @@ namespace FlaxEditor.Viewport
var v = (float)button.Tag; var v = (float)button.Tag;
TransformGizmo.RotationSnapValue = v; TransformGizmo.RotationSnapValue = v;
_rotateSnapping.Text = v.ToString(); _rotateSnapping.Text = v.ToString();
// cache value
_editor.ProjectCache.SetCustomData("RotationSnapValue", TransformGizmo.RotationSnapValue.ToString("N"));
} }
private void OnWidgetRotateSnapShowHide(Control control) private void OnWidgetRotateSnapShowHide(Control control)
@@ -640,6 +692,8 @@ namespace FlaxEditor.Viewport
var v = (float)button.Tag; var v = (float)button.Tag;
TransformGizmo.TranslationSnapValue = v; TransformGizmo.TranslationSnapValue = v;
_translateSnapping.Text = v.ToString(); _translateSnapping.Text = v.ToString();
// cache value
_editor.ProjectCache.SetCustomData("TranslateSnapValue", TransformGizmo.TranslationSnapValue.ToString("N"));
} }
private void OnWidgetTranslateSnapShowHide(Control control) private void OnWidgetTranslateSnapShowHide(Control control)