This commit is contained in:
Wojtek Figat
2023-10-25 14:57:44 +02:00
parent 7c84ca5b84
commit daf31cfa4d

View File

@@ -212,8 +212,10 @@ namespace FlaxEditor.Viewport
/// <summary> /// <summary>
/// Format of the text for the camera move speed. /// Format of the text for the camera move speed.
/// </summary> /// </summary>
private string MovementSpeedTextFormat { private string MovementSpeedTextFormat
get { {
get
{
if (Mathf.Abs(_movementSpeed - _maxMovementSpeed) < Mathf.Epsilon || Mathf.Abs(_movementSpeed - _minMovementSpeed) < Mathf.Epsilon) if (Mathf.Abs(_movementSpeed - _maxMovementSpeed) < Mathf.Epsilon || Mathf.Abs(_movementSpeed - _minMovementSpeed) < Mathf.Epsilon)
return "{0:0.##}"; return "{0:0.##}";
@@ -480,7 +482,7 @@ namespace FlaxEditor.Viewport
get => _panningSpeed; get => _panningSpeed;
set => _panningSpeed = value; set => _panningSpeed = value;
} }
/// <summary> /// <summary>
/// The input actions collection to processed during user input. /// The input actions collection to processed during user input.
/// </summary> /// </summary>
@@ -544,6 +546,7 @@ namespace FlaxEditor.Viewport
if (useWidgets) if (useWidgets)
{ {
#region Camera settings widget #region Camera settings widget
var largestText = "Relative Panning"; var largestText = "Relative Panning";
var textSize = Style.Current.FontMedium.MeasureText(largestText); var textSize = Style.Current.FontMedium.MeasureText(largestText);
var xLocationForExtras = textSize.X + 5; var xLocationForExtras = textSize.X + 5;
@@ -609,7 +612,7 @@ namespace FlaxEditor.Viewport
maxCamSpeedValue.ValueChanged += () => maxCamSpeedValue.ValueChanged += () =>
{ {
OnMaxMovementSpeedChanged(maxCamSpeedValue); OnMaxMovementSpeedChanged(maxCamSpeedValue);
minCamSpeedValue.MaxValue = maxCamSpeedValue.Value; minCamSpeedValue.MaxValue = maxCamSpeedValue.Value;
if (Math.Abs(camSpeedValue.MaxValue - maxCamSpeedValue.Value) > Mathf.Epsilon) if (Math.Abs(camSpeedValue.MaxValue - maxCamSpeedValue.Value) > Mathf.Epsilon)
@@ -792,9 +795,11 @@ namespace FlaxEditor.Viewport
maxCamSpeedValue.Value = _maxMovementSpeed; maxCamSpeedValue.Value = _maxMovementSpeed;
}; };
} }
#endregion Camera settings widget #endregion Camera settings widget
#region View mode widget #region View mode widget
largestText = "Brightness"; largestText = "Brightness";
textSize = Style.Current.FontMedium.MeasureText(largestText); textSize = Style.Current.FontMedium.MeasureText(largestText);
xLocationForExtras = textSize.X + 5; xLocationForExtras = textSize.X + 5;
@@ -964,6 +969,7 @@ namespace FlaxEditor.Viewport
resolutionValue.ValueChanged += () => ResolutionScale = resolutionValue.Value; resolutionValue.ValueChanged += () => ResolutionScale = resolutionValue.Value;
ViewWidgetButtonMenu.VisibleChanged += control => resolutionValue.Value = ResolutionScale; ViewWidgetButtonMenu.VisibleChanged += control => resolutionValue.Value = ResolutionScale;
} }
#endregion View mode widget #endregion View mode widget
} }
@@ -1036,7 +1042,7 @@ namespace FlaxEditor.Viewport
OnCameraMovementProgressChanged(); OnCameraMovementProgressChanged();
_editor.ProjectCache.SetCustomData("CameraMaxMovementSpeedValue", _maxMovementSpeed.ToString()); _editor.ProjectCache.SetCustomData("CameraMaxMovementSpeedValue", _maxMovementSpeed.ToString());
} }
private void OnCameraEasingToggled(Control control) private void OnCameraEasingToggled(Control control)
{ {
_useCameraEasing = !_useCameraEasing; _useCameraEasing = !_useCameraEasing;
@@ -1145,11 +1151,12 @@ namespace FlaxEditor.Viewport
private void OnCameraMovementProgressChanged() private void OnCameraMovementProgressChanged()
{ {
// prevent NaN // prevent NaN
if (Math.Abs(_minMovementSpeed - _maxMovementSpeed) < Mathf.Epsilon) { if (Math.Abs(_minMovementSpeed - _maxMovementSpeed) < Mathf.Epsilon)
{
_speedStep = 0; _speedStep = 0;
return; return;
} }
if (Math.Abs(_movementSpeed - _maxMovementSpeed) < Mathf.Epsilon) if (Math.Abs(_movementSpeed - _maxMovementSpeed) < Mathf.Epsilon)
{ {
_speedStep = _maxSpeedSteps; _speedStep = _maxSpeedSteps;
@@ -1180,9 +1187,9 @@ namespace FlaxEditor.Viewport
// calculate new linear/eased progress // calculate new linear/eased progress
var progress = _useCameraEasing var progress = _useCameraEasing
? Mathf.Pow((float)_speedStep / _maxSpeedSteps, _cameraEasingDegree) ? Mathf.Pow((float)_speedStep / _maxSpeedSteps, _cameraEasingDegree)
: (float)_speedStep / _maxSpeedSteps; : (float)_speedStep / _maxSpeedSteps;
var speed = Mathf.Lerp(_minMovementSpeed, _maxMovementSpeed, progress); var speed = Mathf.Lerp(_minMovementSpeed, _maxMovementSpeed, progress);
MovementSpeed = (float)Math.Round(speed, 3); MovementSpeed = (float)Math.Round(speed, 3);
_editor.ProjectCache.SetCustomData("CameraMovementSpeedValue", _movementSpeed.ToString()); _editor.ProjectCache.SetCustomData("CameraMovementSpeedValue", _movementSpeed.ToString());