shortcuts to recenter and focus selected mesh

Shift+C: Recenter
Decimal: Focus selected
This commit is contained in:
MountainFlash
2021-11-21 12:48:37 +05:30
parent c62d3f691e
commit 0669572d5d
3 changed files with 10 additions and 8 deletions

View File

@@ -458,22 +458,20 @@ namespace FModel.ViewModels
private void SetupCameraAndAxis(FBox box, ModelAndCam cam)
{
if (AppendMode && CanAppend) return;
var meanX = (box.Max.X + box.Min.X) / 2;
var meanY = (box.Max.Y + box.Min.Y) / 2;
var meanZ = (box.Max.Z + box.Min.Z) / 2;
var center = box.GetCenter();
var lineBuilder = new LineBuilder();
lineBuilder.AddLine(new Vector3(box.Min.X, meanZ, meanY), new Vector3(box.Max.X, meanZ, meanY));
lineBuilder.AddLine(new Vector3(box.Min.X, center.Z, center.Y), new Vector3(box.Max.X, center.Z, center.Y));
cam.XAxis = lineBuilder.ToLineGeometry3D();
lineBuilder = new LineBuilder();
lineBuilder.AddLine(new Vector3(meanX, box.Min.Z, meanY), new Vector3(meanX, box.Max.Z, meanY));
lineBuilder.AddLine(new Vector3(center.X, box.Min.Z, center.Y), new Vector3(center.X, box.Max.Z, center.Y));
cam.YAxis = lineBuilder.ToLineGeometry3D();
lineBuilder = new LineBuilder();
lineBuilder.AddLine(new Vector3(meanX, meanZ, box.Min.Y), new Vector3(meanX, meanZ, box.Max.Y));
lineBuilder.AddLine(new Vector3(center.X, center.Z, box.Min.Y), new Vector3(center.X, center.Z, box.Max.Y));
cam.ZAxis = lineBuilder.ToLineGeometry3D();
cam.Position = new Point3D(box.Max.X + meanX * 2, meanZ, box.Min.Y + meanY * 2);
cam.LookDirection = new Vector3D(-cam.Position.X + meanX, 0, -cam.Position.Z + meanY);
cam.Position = new Point3D(box.Max.X + center.X * 2, center.Z, box.Min.Y + center.Y * 2);
cam.LookDirection = new Vector3D(-cam.Position.X + center.X, 0, -cam.Position.Z + center.Y);
}
private string FixName(string input)

View File

@@ -122,6 +122,7 @@
<MouseBinding Command="helix:ViewportCommands.Rotate" Gesture="LeftClick" />
<MouseBinding Command="helix:ViewportCommands.Zoom" Gesture="RightClick" />
<MouseBinding Command="helix:ViewportCommands.Pan" Gesture="MiddleClick" />
<KeyBinding Command="helix:ViewportCommands.ZoomExtents" Modifiers="Shift" Key="C"/>
</helix:Viewport3DX.InputBindings>
<helix:EnvironmentMap3D Texture="{Binding ModelViewer.HDRi}" />

View File

@@ -65,6 +65,9 @@ namespace FModel.Views
case Key.D:
_applicationView.ModelViewer.DiffuseOnlyToggle();
break;
case Key.Decimal:
_applicationView.ModelViewer.FocusOnSelectedMesh();
break;
}
}