fix: 连续检测3D消失,连续检测选中面重置

master
Tongg 7 months ago
parent b8be277e72
commit 331dbaf6e2
  1. 2
      Views/UserControl/Viewport3D.xaml.cs
  2. 20
      Views/UserControl/ViewportData/Helper/ViewportManager.cs

@ -34,6 +34,7 @@ public partial class Viewport3D
/// <param name="e"></param> /// <param name="e"></param>
private void Viewport3D_OnLoaded(object sender, RoutedEventArgs e) private void Viewport3D_OnLoaded(object sender, RoutedEventArgs e)
{ {
ViewportManager.SetViewport3D(Viewport3Dx);
ViewportManager.LoadModelByEntities(new List<Viewport3DTriangleEntity>()); ViewportManager.LoadModelByEntities(new List<Viewport3DTriangleEntity>());
//选项初始化 显示-后端-管理类 一致 //选项初始化 显示-后端-管理类 一致
@ -50,6 +51,7 @@ public partial class Viewport3D
ViewportRightMenuSelectFaceAngleText.IsChecked = ViewportManager.DoubleClickSelectShowBorderAngle; ViewportRightMenuSelectFaceAngleText.IsChecked = ViewportManager.DoubleClickSelectShowBorderAngle;
ViewportRightMenuSelectFaceKind.IsChecked = ViewportManager.DoubleClickSelectShowPlaneType; ViewportRightMenuSelectFaceKind.IsChecked = ViewportManager.DoubleClickSelectShowPlaneType;
var a = Viewport3Dx.Items;
} }
/// <summary> /// <summary>
/// 双击选择面 /// 双击选择面

@ -54,9 +54,14 @@ public class ViewportManager
private static Viewport3DX _viewport; private static Viewport3DX _viewport;
public static void SetViewport3D(Viewport3DX viewport3D) public static void SetViewport3D(Viewport3DX viewport3D)
{ {
if (_viewport == null) if (_viewport != null)
_viewport = viewport3D; {
ClearDicModels();
_viewport.Items.Clear();
}
_viewport = viewport3D;
} }
public static Viewport3DX GetViewport3D() public static Viewport3DX GetViewport3D()
{ {
@ -87,6 +92,7 @@ public class ViewportManager
{ {
if (string.IsNullOrWhiteSpace(ChooseTriangleCode)) if (string.IsNullOrWhiteSpace(ChooseTriangleCode))
{ {
ClearDicModels();
return; return;
} }
@ -156,9 +162,17 @@ public class ViewportManager
entities.AddRange(ViewportTriangle); entities.AddRange(ViewportTriangle);
} }
//重置
_viewport.Items.Clear();
ChooseTriangleCode = string.Empty;
ChooseAddModels.Clear();
ResetChooseAddModels();
//刷新三角形
ViewportTriangle.Clear(); ViewportTriangle.Clear();
ViewportTriangle.AddRange(entities); ViewportTriangle.AddRange(entities);
_viewport.Items.Clear();
//初始化
MainModel3D = ViewportHelperPro.GenerateModelByEntity(_viewport, entities); MainModel3D = ViewportHelperPro.GenerateModelByEntity(_viewport, entities);
MainModelLines = ViewportHelperPro.GentrateLineByEntity(_viewport, entities); MainModelLines = ViewportHelperPro.GentrateLineByEntity(_viewport, entities);
MainModelLighting = ViewportHelperPro.GenerateLightingForModel(_viewport); MainModelLighting = ViewportHelperPro.GenerateLightingForModel(_viewport);

Loading…
Cancel
Save