diff --git a/Views/UserControl/Viewport3D.xaml.cs b/Views/UserControl/Viewport3D.xaml.cs
index 57f3f9a..8038817 100644
--- a/Views/UserControl/Viewport3D.xaml.cs
+++ b/Views/UserControl/Viewport3D.xaml.cs
@@ -413,21 +413,7 @@ public partial class Viewport3D
ViewportManager.ResetChooseAddModels();
break;
case "ViewportRightMenuShowMeshLines":
- var center = ViewportManager.ModelBounds.Center;
- var maxDimension = ViewportManager.ModelBounds.Size.Length();
- var distance = maxDimension * 1.2; // 调整相机到模型的距离,保证视野范围内
- // 获取当前相机
- var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.OrthographicCamera;
- var Position = camera.Position;
- var LookDirection = camera.LookDirection;
- bool isCrown = false;
- if(camera.LookDirection.Y >= 0 && camera.UpDirection.Y<=0)
- {
- isCrown = true;
- }
- ViewportManager.ShowMeshLines(checkResult, isCrown);
- //camera.LookDirection = new Vector3D(center.X - camera.Position.X, center.Y - camera.Position.Y, center.Z - camera.Position.Z);
-
+ ViewportManager.ShowMeshLines(checkResult, ViewportHelperPro.IsCrown());
break;
}
}
diff --git a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs
index ef0c4b8..d09380b 100644
--- a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs
+++ b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs
@@ -1283,7 +1283,10 @@ public class ViewportHelperPro
///
public static List ShowMeshLines(List entities, bool isCrown = true, double thickness = 1.0)
{
- moveLines = new();
+ if (isCrown)
+ {
+ moveLines = new();
+ }
List lines = new();
var Y = -0.01F;
if (!isCrown)
@@ -1552,6 +1555,10 @@ public class ViewportHelperPro
// 现在鼠标对于3d模型的位置
var mousePosition = ev.Position;
var Y = -0.01F;
+ if (!IsCrown())
+ {
+ Y = ViewportManager.ModelBounds.Maximum.Y + 0.01F;
+ }
var center = ViewportManager.CenterVector;
center.Y = Y;
@@ -1619,6 +1626,10 @@ public class ViewportHelperPro
dragStartPoint = ev.Position;
Point3D mouseWorldPosition = Get3DPointFromMouse(dragStartPoint);
var Y = -0.01F;
+ if(!IsCrown())
+ {
+ Y = ViewportManager.ModelBounds.Maximum.Y + 0.01F;
+ }
var center = ViewportManager.CenterVector;
center.Y = Y;
initDistance = CalculateDistance(mouseWorldPosition, center.ToPoint3D());
@@ -1627,6 +1638,16 @@ public class ViewportHelperPro
Viewport.CaptureMouse();
}
}
+ public static bool IsCrown()
+ {
+ bool isCrown = false;
+ var camera = ViewportManager.GetViewport3D().Camera;
+ if (camera.LookDirection.Y >= 0 && camera.UpDirection.Y <= 0)
+ {
+ isCrown = true;
+ }
+ return isCrown;
+ }
#region 私有方法
///