Add default camera settings to editor options
* update ViewportOptions to include new default camera settings * update existing default settings in ViewportOptions * extract viewport options setup into own method * initialize new camera settings with default settings in EditorViewport
This commit is contained in:
@@ -26,45 +26,87 @@ namespace FlaxEditor.Options
|
|||||||
public float MouseWheelSensitivity { get; set; } = 1.0f;
|
public float MouseWheelSensitivity { get; set; } = 1.0f;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the default movement speed for the viewport camera (must match the dropdown menu values in the viewport).
|
/// Gets or sets the default movement speed for the viewport camera (must be in range between minimum and maximum movement speed values).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(1.0f), Limit(0.01f, 100.0f)]
|
[DefaultValue(1.0f), Limit(0.05f, 64.0f)]
|
||||||
[EditorDisplay("Defaults"), EditorOrder(110), Tooltip("The default movement speed for the viewport camera (must match the dropdown menu values in the viewport).")]
|
[EditorDisplay("Defaults"), EditorOrder(110), Tooltip("The default movement speed for the viewport camera (must be in range between minimum and maximum movement speed values).")]
|
||||||
public float DefaultMovementSpeed { get; set; } = 1.0f;
|
public float DefaultMovementSpeed { get; set; } = 1.0f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the default minimum camera movement speed.
|
||||||
|
/// </summary>
|
||||||
|
[DefaultValue(0.05f), Limit(0.05f, 64.0f)]
|
||||||
|
[EditorDisplay("Defaults"), EditorOrder(111), Tooltip("The default minimum movement speed for the viewport camera.")]
|
||||||
|
public float DefaultMinMovementSpeed { get; set; } = 0.05f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the default maximum camera movement speed.
|
||||||
|
/// </summary>
|
||||||
|
[DefaultValue(64.0f), Limit(32.0f, 1000.0f)]
|
||||||
|
[EditorDisplay("Defaults"), EditorOrder(112), Tooltip("The default maximum movement speed for the viewport camera.")]
|
||||||
|
public float DefaultMaxMovementSpeed { get; set; } = 64f;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the default near clipping plane distance for the viewport camera.
|
/// Gets or sets the default near clipping plane distance for the viewport camera.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(10.0f), Limit(0.001f, 1000.0f)]
|
[DefaultValue(10.0f), Limit(0.001f, 1000.0f)]
|
||||||
[EditorDisplay("Defaults"), EditorOrder(120), Tooltip("The default near clipping plane distance for the viewport camera.")]
|
[EditorDisplay("Defaults"), EditorOrder(130), Tooltip("The default near clipping plane distance for the viewport camera.")]
|
||||||
public float DefaultNearPlane { get; set; } = 10.0f;
|
public float DefaultNearPlane { get; set; } = 10.0f;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the default far clipping plane distance for the viewport camera.
|
/// Gets or sets the default far clipping plane distance for the viewport camera.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(40000.0f), Limit(10.0f)]
|
[DefaultValue(40000.0f), Limit(10.0f)]
|
||||||
[EditorDisplay("Defaults"), EditorOrder(130), Tooltip("The default far clipping plane distance for the viewport camera.")]
|
[EditorDisplay("Defaults"), EditorOrder(140), Tooltip("The default far clipping plane distance for the viewport camera.")]
|
||||||
public float DefaultFarPlane { get; set; } = 40000.0f;
|
public float DefaultFarPlane { get; set; } = 40000.0f;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets the default field of view angle (in degrees) for the viewport camera.
|
/// Gets or sets the default field of view angle (in degrees) for the viewport camera.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(60.0f), Limit(35.0f, 160.0f, 0.1f)]
|
[DefaultValue(60.0f), Limit(35.0f, 160.0f, 0.1f)]
|
||||||
[EditorDisplay("Defaults", "Default Field Of View"), EditorOrder(140), Tooltip("The default field of view angle (in degrees) for the viewport camera.")]
|
[EditorDisplay("Defaults"), EditorOrder(150), Tooltip("The default field of view angle (in degrees) for the viewport camera.")]
|
||||||
public float DefaultFieldOfView { get; set; } = 60.0f;
|
public float DefaultFieldOfView { get; set; } = 60.0f;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets or sets if the panning direction is inverted for the viewport camera.
|
/// Gets or sets the default camera orthographic mode.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(false)]
|
[DefaultValue(false)]
|
||||||
[EditorDisplay("Defaults"), EditorOrder(150), Tooltip("Invert the panning direction for the viewport camera.")]
|
[EditorDisplay("Defaults"), EditorOrder(160), Tooltip("The default camera orthographic mode.")]
|
||||||
|
public bool DefaultOrthographicProjection { get; set; } = false;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the default camera orthographic scale (if camera uses orthographic mode).
|
||||||
|
/// </summary>
|
||||||
|
[DefaultValue(5.0f), Limit(0.001f, 100000.0f, 0.1f)]
|
||||||
|
[EditorDisplay("Defaults"), EditorOrder(170), Tooltip("The default camera orthographic scale (if camera uses orthographic mode).")]
|
||||||
|
public float DefaultOrthographicScale { get; set; } = 5.0f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the default panning direction for the viewport camera.
|
||||||
|
/// </summary>
|
||||||
|
[DefaultValue(false)]
|
||||||
|
[EditorDisplay("Defaults"), EditorOrder(180), Tooltip("The default panning direction for the viewport camera.")]
|
||||||
public bool DefaultInvertPanning { get; set; } = false;
|
public bool DefaultInvertPanning { get; set; } = false;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Scales editor viewport grid.
|
/// Gets or sets the default relative panning mode.
|
||||||
|
/// </summary>
|
||||||
|
[DefaultValue(true)]
|
||||||
|
[EditorDisplay("Defaults"), EditorOrder(190), Tooltip("The default relative panning mode. Uses distance between camera and target to determine panning speed.")]
|
||||||
|
public bool DefaultRelativePanning { get; set; } = true;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the default panning speed (ignored if relative panning is speed enabled).
|
||||||
|
/// </summary>
|
||||||
|
[DefaultValue(0.8f), Limit(0.01f, 128.0f, 0.1f)]
|
||||||
|
[EditorDisplay("Defaults"), EditorOrder(200), Tooltip("The default camera panning speed (ignored if relative panning is enabled).")]
|
||||||
|
public float DefaultPanningSpeed { get; set; } = 0.8f;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets or sets the default editor viewport grid scale.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[DefaultValue(50.0f), Limit(25.0f, 500.0f, 5.0f)]
|
[DefaultValue(50.0f), Limit(25.0f, 500.0f, 5.0f)]
|
||||||
[EditorDisplay("Defaults"), EditorOrder(160), Tooltip("Scales editor viewport grid.")]
|
[EditorDisplay("Defaults"), EditorOrder(210), Tooltip("The default editor viewport grid scale.")]
|
||||||
public float ViewportGridScale { get; set; } = 50.0f;
|
public float ViewportGridScale { get; set; } = 50.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -467,15 +467,8 @@ namespace FlaxEditor.Viewport
|
|||||||
|
|
||||||
// Setup options
|
// Setup options
|
||||||
{
|
{
|
||||||
var options = Editor.Instance.Options.Options;
|
|
||||||
_movementSpeed = options.Viewport.DefaultMovementSpeed;
|
|
||||||
_nearPlane = options.Viewport.DefaultNearPlane;
|
|
||||||
_farPlane = options.Viewport.DefaultFarPlane;
|
|
||||||
_fieldOfView = options.Viewport.DefaultFieldOfView;
|
|
||||||
_invertPanning = options.Viewport.DefaultInvertPanning;
|
|
||||||
|
|
||||||
Editor.Instance.Options.OptionsChanged += OnEditorOptionsChanged;
|
Editor.Instance.Options.OptionsChanged += OnEditorOptionsChanged;
|
||||||
OnEditorOptionsChanged(options);
|
SetupViewportOptions();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useWidgets)
|
if (useWidgets)
|
||||||
@@ -809,6 +802,28 @@ namespace FlaxEditor.Viewport
|
|||||||
task.Begin += OnRenderBegin;
|
task.Begin += OnRenderBegin;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Sets the viewport options to the default values.
|
||||||
|
/// </summary>
|
||||||
|
private void SetupViewportOptions()
|
||||||
|
{
|
||||||
|
var options = Editor.Instance.Options.Options;
|
||||||
|
_minMovementSpeed = options.Viewport.DefaultMinMovementSpeed;
|
||||||
|
_movementSpeed = options.Viewport.DefaultMovementSpeed;
|
||||||
|
_maxMovementSpeed = options.Viewport.DefaultMaxMovementSpeed;
|
||||||
|
_panningSpeed = options.Viewport.DefaultPanningSpeed;
|
||||||
|
_invertPanning = options.Viewport.DefaultInvertPanning;
|
||||||
|
_relativePanning = options.Viewport.DefaultRelativePanning;
|
||||||
|
|
||||||
|
_isOrtho = options.Viewport.DefaultOrthographicProjection;
|
||||||
|
_orthoSize = options.Viewport.DefaultOrthographicScale;
|
||||||
|
_fieldOfView = options.Viewport.DefaultFieldOfView;
|
||||||
|
_nearPlane = options.Viewport.DefaultNearPlane;
|
||||||
|
_farPlane = options.Viewport.DefaultFarPlane;
|
||||||
|
|
||||||
|
OnEditorOptionsChanged(options);
|
||||||
|
}
|
||||||
|
|
||||||
private void OnMovementSpeedChanged(FloatValueBox control)
|
private void OnMovementSpeedChanged(FloatValueBox control)
|
||||||
{
|
{
|
||||||
var value = Mathf.Clamp(control.Value, _minMovementSpeed, _maxMovementSpeed);
|
var value = Mathf.Clamp(control.Value, _minMovementSpeed, _maxMovementSpeed);
|
||||||
|
|||||||
Reference in New Issue
Block a user