From 66c1b736351fae0595c7fc23467e60c09601dd8a Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 18 Mar 2021 17:55:07 +0100 Subject: [PATCH] Add `F` to focus camera view in asset previews --- Source/Editor/Viewport/Cameras/ArcBallCamera.cs | 9 +++++++++ Source/Editor/Viewport/Cameras/FPSCamera.cs | 8 ++++++++ Source/Editor/Viewport/Cameras/ViewportCamera.cs | 2 +- .../Viewport/Previews/AnimatedModelPreview.cs | 13 +++++++++++++ Source/Editor/Viewport/Previews/ModelPreview.cs | 13 +++++++++++++ 5 files changed, 44 insertions(+), 1 deletion(-) diff --git a/Source/Editor/Viewport/Cameras/ArcBallCamera.cs b/Source/Editor/Viewport/Cameras/ArcBallCamera.cs index 876adc796..e6a72c8b4 100644 --- a/Source/Editor/Viewport/Cameras/ArcBallCamera.cs +++ b/Source/Editor/Viewport/Cameras/ArcBallCamera.cs @@ -94,6 +94,15 @@ namespace FlaxEditor.Viewport.Cameras Viewport.ViewPosition = _orbitCenter + localPosition; } + /// + public override void SetArcBallView(Quaternion orientation, Vector3 orbitCenter, float orbitRadius) + { + base.SetArcBallView(orientation, orbitCenter, orbitRadius); + + _orbitCenter = orbitCenter; + _orbitRadius = orbitRadius; + } + /// public override void UpdateView(float dt, ref Vector3 moveDelta, ref Vector2 mouseDelta, out bool centerMouse) { diff --git a/Source/Editor/Viewport/Cameras/FPSCamera.cs b/Source/Editor/Viewport/Cameras/FPSCamera.cs index e60def838..1079b7560 100644 --- a/Source/Editor/Viewport/Cameras/FPSCamera.cs +++ b/Source/Editor/Viewport/Cameras/FPSCamera.cs @@ -166,6 +166,14 @@ namespace FlaxEditor.Viewport.Cameras MoveViewport(position, orientation); } + /// + public override void SetArcBallView(Quaternion orientation, Vector3 orbitCenter, float orbitRadius) + { + base.SetArcBallView(orientation, orbitCenter, orbitRadius); + + TargetPoint = orbitCenter; + } + /// public override void Update(float deltaTime) { diff --git a/Source/Editor/Viewport/Cameras/ViewportCamera.cs b/Source/Editor/Viewport/Cameras/ViewportCamera.cs index 85b7a917c..6564d16d0 100644 --- a/Source/Editor/Viewport/Cameras/ViewportCamera.cs +++ b/Source/Editor/Viewport/Cameras/ViewportCamera.cs @@ -62,7 +62,7 @@ namespace FlaxEditor.Viewport.Cameras /// The view rotation. /// The orbit center location. /// The orbit radius. - public void SetArcBallView(Quaternion orientation, Vector3 orbitCenter, float orbitRadius) + public virtual void SetArcBallView(Quaternion orientation, Vector3 orbitCenter, float orbitRadius) { // Rotate Viewport.ViewOrientation = orientation; diff --git a/Source/Editor/Viewport/Previews/AnimatedModelPreview.cs b/Source/Editor/Viewport/Previews/AnimatedModelPreview.cs index 6f6103a5d..697a7c1c1 100644 --- a/Source/Editor/Viewport/Previews/AnimatedModelPreview.cs +++ b/Source/Editor/Viewport/Previews/AnimatedModelPreview.cs @@ -249,6 +249,19 @@ namespace FlaxEditor.Viewport.Previews } } + /// + public override bool OnKeyDown(KeyboardKeys key) + { + switch (key) + { + case KeyboardKeys.F: + // Pay respect.. + ViewportCamera.SetArcBallView(_previewModel.Box); + break; + } + return base.OnKeyDown(key); + } + /// public override void OnDestroy() { diff --git a/Source/Editor/Viewport/Previews/ModelPreview.cs b/Source/Editor/Viewport/Previews/ModelPreview.cs index 7055edbe9..3f285ddcd 100644 --- a/Source/Editor/Viewport/Previews/ModelPreview.cs +++ b/Source/Editor/Viewport/Previews/ModelPreview.cs @@ -85,6 +85,19 @@ namespace FlaxEditor.Viewport.Previews } } + /// + public override bool OnKeyDown(KeyboardKeys key) + { + switch (key) + { + case KeyboardKeys.F: + // Pay respect.. + ViewportCamera.SetArcBallView(_previewModel.Box); + break; + } + return base.OnKeyDown(key); + } + /// public override void OnDestroy() {