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() {