Fix viewpoints.

This commit is contained in:
Jean-Baptiste Perrier
2021-05-29 18:53:30 +02:00
parent 03014dcf08
commit ccef5f0d73
2 changed files with 28 additions and 8 deletions

View File

@@ -656,11 +656,20 @@ namespace FlaxEditor.Viewport
/// Focuses the viewport on the current selection of the gizmo.
/// </summary>
public void FocusSelection()
{
var orientation = ViewOrientation;
FocusSelection(ref orientation);
}
/// <summary>
/// Focuses the viewport on the current selection of the gizmo.
/// </summary>
/// <param name="orientation">The target view orientation.</param>
public void FocusSelection(ref Quaternion orientation)
{
if (TransformGizmo.SelectedParents.Count == 0)
return;
var orientation = ViewOrientation;
var gizmoBounds = Gizmos.Active.FocusBounds;
if (gizmoBounds != BoundingSphere.Empty)
((FPSCamera)ViewportCamera).ShowSphere(ref gizmoBounds, ref orientation);
@@ -725,9 +734,10 @@ namespace FlaxEditor.Viewport
/// <inheritdoc />
protected override void OrientViewport(ref Quaternion orientation)
{
FocusSelection();
base.OrientViewport(ref orientation);
if (TransformGizmo.SelectedParents.Count != 0)
FocusSelection(ref orientation);
else
base.OrientViewport(ref orientation);
}
/// <inheritdoc />

View File

@@ -787,11 +787,20 @@ namespace FlaxEditor.Viewport
/// Focuses the viewport on the current selection of the gizmo.
/// </summary>
public void FocusSelection()
{
var orientation = ViewOrientation;
FocusSelection(ref orientation);
}
/// <summary>
/// Focuses the viewport on the current selection of the gizmo.
/// </summary>
/// <param name="orientation">The target view orientation.</param>
public void FocusSelection(ref Quaternion orientation)
{
if (TransformGizmo.SelectedParents.Count == 0)
return;
var orientation = ViewOrientation;
var gizmoBounds = Gizmos.Active.FocusBounds;
if (gizmoBounds != BoundingSphere.Empty)
((FPSCamera)ViewportCamera).ShowSphere(ref gizmoBounds, ref orientation);
@@ -802,9 +811,10 @@ namespace FlaxEditor.Viewport
/// <inheritdoc />
protected override void OrientViewport(ref Quaternion orientation)
{
FocusSelection();
base.OrientViewport(ref orientation);
if (TransformGizmo.SelectedParents.Count != 0)
FocusSelection(ref orientation);
else
base.OrientViewport(ref orientation);
}
/// <inheritdoc />