diff --git a/FModel/ViewModels/ModelViewerViewModel.cs b/FModel/ViewModels/ModelViewerViewModel.cs index 888f1967..3bbf7c4b 100644 --- a/FModel/ViewModels/ModelViewerViewModel.cs +++ b/FModel/ViewModels/ModelViewerViewModel.cs @@ -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) diff --git a/FModel/Views/ModelViewer.xaml b/FModel/Views/ModelViewer.xaml index bc0e09c1..dc07a792 100644 --- a/FModel/Views/ModelViewer.xaml +++ b/FModel/Views/ModelViewer.xaml @@ -122,6 +122,7 @@ + diff --git a/FModel/Views/ModelViewer.xaml.cs b/FModel/Views/ModelViewer.xaml.cs index 09853c6b..b122672a 100644 --- a/FModel/Views/ModelViewer.xaml.cs +++ b/FModel/Views/ModelViewer.xaml.cs @@ -65,6 +65,9 @@ namespace FModel.Views case Key.D: _applicationView.ModelViewer.DiffuseOnlyToggle(); break; + case Key.Decimal: + _applicationView.ModelViewer.FocusOnSelectedMesh(); + break; } }