|
|
@ -32,6 +32,7 @@ public partial class Viewport3D |
|
|
|
Viewport3Dx.ShowViewCube = false; |
|
|
|
Viewport3Dx.ShowViewCube = false; |
|
|
|
Viewport3Dx.ShowCoordinateSystem = false; |
|
|
|
Viewport3Dx.ShowCoordinateSystem = false; |
|
|
|
ViewportManager.SetViewport3D(Viewport3Dx); |
|
|
|
ViewportManager.SetViewport3D(Viewport3Dx); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
@ -129,7 +130,7 @@ public partial class Viewport3D |
|
|
|
var maxDimension = ViewportManager.ModelBounds.Size.Length(); |
|
|
|
var maxDimension = ViewportManager.ModelBounds.Size.Length(); |
|
|
|
var distance = maxDimension *1.2; // 调整相机到模型的距离,保证视野范围内 |
|
|
|
var distance = maxDimension *1.2; // 调整相机到模型的距离,保证视野范围内 |
|
|
|
// 获取当前相机 |
|
|
|
// 获取当前相机 |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.PerspectiveCamera; |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.OrthographicCamera; |
|
|
|
|
|
|
|
|
|
|
|
switch (directionName) |
|
|
|
switch (directionName) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -187,7 +188,7 @@ public partial class Viewport3D |
|
|
|
var center = ViewportManager.ModelBounds.Center; |
|
|
|
var center = ViewportManager.ModelBounds.Center; |
|
|
|
var maxDimension = ViewportManager.ModelBounds.Size.Length(); |
|
|
|
var maxDimension = ViewportManager.ModelBounds.Size.Length(); |
|
|
|
var distance = maxDimension *1.2; // 调整相机到模型的距离,保证视野范围内 |
|
|
|
var distance = maxDimension *1.2; // 调整相机到模型的距离,保证视野范围内 |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.PerspectiveCamera; |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.OrthographicCamera; |
|
|
|
camera.Position = new Point3D(center.X, center.Y, center.Z + distance); // 从前面看,Z轴正方向 |
|
|
|
camera.Position = new Point3D(center.X, center.Y, center.Z + distance); // 从前面看,Z轴正方向 |
|
|
|
camera.UpDirection = new Vector3D(0, -1, 0); |
|
|
|
camera.UpDirection = new Vector3D(0, -1, 0); |
|
|
|
camera.LookDirection = new Vector3D(center.X - camera.Position.X, center.Y - camera.Position.Y, center.Z - camera.Position.Z); |
|
|
|
camera.LookDirection = new Vector3D(center.X - camera.Position.X, center.Y - camera.Position.Y, center.Z - camera.Position.Z); |
|
|
@ -211,7 +212,7 @@ public partial class Viewport3D |
|
|
|
var directionValue = (int)TbCustomizeRevolve.Value; // 旋转角度(单位:度) |
|
|
|
var directionValue = (int)TbCustomizeRevolve.Value; // 旋转角度(单位:度) |
|
|
|
|
|
|
|
|
|
|
|
// 获取当前相机和模型中心 |
|
|
|
// 获取当前相机和模型中心 |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.PerspectiveCamera; |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.OrthographicCamera; |
|
|
|
if (camera == null) return; |
|
|
|
if (camera == null) return; |
|
|
|
|
|
|
|
|
|
|
|
var modelCenter = ViewportManager.CenterVector; // 模型中心 |
|
|
|
var modelCenter = ViewportManager.CenterVector; // 模型中心 |
|
|
@ -417,7 +418,7 @@ public partial class Viewport3D |
|
|
|
var maxDimension = ViewportManager.ModelBounds.Size.Length(); |
|
|
|
var maxDimension = ViewportManager.ModelBounds.Size.Length(); |
|
|
|
var distance = maxDimension * 1.2; // 调整相机到模型的距离,保证视野范围内 |
|
|
|
var distance = maxDimension * 1.2; // 调整相机到模型的距离,保证视野范围内 |
|
|
|
// 获取当前相机 |
|
|
|
// 获取当前相机 |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.PerspectiveCamera; |
|
|
|
var camera = Viewport3Dx.Camera as HelixToolkit.Wpf.SharpDX.OrthographicCamera; |
|
|
|
camera.Position = new Point3D(center.X, center.Y - distance, center.Z); // 从底部看,Y轴负方向 |
|
|
|
camera.Position = new Point3D(center.X, center.Y - distance, center.Z); // 从底部看,Y轴负方向 |
|
|
|
camera.UpDirection = new Vector3D(0, 0, -1); |
|
|
|
camera.UpDirection = new Vector3D(0, 0, -1); |
|
|
|
camera.LookDirection = new Vector3D(center.X - camera.Position.X, center.Y - camera.Position.Y, center.Z - camera.Position.Z); |
|
|
|
camera.LookDirection = new Vector3D(center.X - camera.Position.X, center.Y - camera.Position.Y, center.Z - camera.Position.Z); |
|
|
|