fix: 右键修复

master
tongg 7 months ago
parent f3df27995d
commit 83ef655fb1
  1. 1
      Language/zh_CN.xaml
  2. 1
      Views/UserControl/Viewport3D.xaml
  3. 5
      Views/UserControl/Viewport3D.xaml.cs
  4. 38
      Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs
  5. 22
      Views/UserControl/ViewportData/Helper/ViewportManager.cs

@ -105,6 +105,7 @@
<sys:String x:Key="ViewportRightMenuFront">正面视角</sys:String>
<sys:String x:Key="ViewportRightMenuSaveViewToPNG">截图当前视角到PNG</sys:String>
<sys:String x:Key="ViewportRightMenuShowModelFace">显示模型面</sys:String>
<sys:String x:Key="ViewportRightMenuShowModelFaceByType">显示模型面</sys:String>
<sys:String x:Key="ViewportRightMenuShowModelFrame">显示模型边框</sys:String>
<sys:String x:Key="ViewportRightMenuShowLighting">显示光照</sys:String>
<sys:String x:Key="ViewportRightMenuSelectFace">双击选择面</sys:String>

@ -101,6 +101,7 @@
<!-- 选择 -->
<Separator />
<MenuItem Header="{StaticResource ViewportRightMenuShowModelFace}" x:Name="ViewportRightMenuShowModelFace" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowModelFaceByType}" x:Name="ViewportRightMenuShowModelFaceByType" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowModelFrame}" x:Name="ViewportRightMenuShowModelFrame" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowLighting}" x:Name="ViewportRightMenuShowLighting" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>
<MenuItem Header="{StaticResource ViewportRightMenuShowDefectFace}" x:Name="ViewportRightMenuShowDefectFace" IsCheckable="True" StaysOpenOnClick="True" Checked="MenuItem_OnCheckedChanged" Unchecked="MenuItem_OnCheckedChanged"/>

@ -259,6 +259,11 @@ public partial class Viewport3D
//显示模型面
ViewportManager.ShowMainModel3D(checkResult);
break;
case "ViewportRightMenuShowModelFaceByType":
//显示模型面
ViewportManager.ShowMainModel3D(!checkResult);
ViewportManager.ShowMainModel3DByType(checkResult);
break;
case "ViewportRightMenuShowModelFrame":
//显示模型边框
ViewportManager.ShowMainModelLines(checkResult);

@ -1,3 +1,4 @@
using System.Collections.Frozen;
using System.Collections.ObjectModel;
using System.IO;
using System.Windows;
@ -81,6 +82,43 @@ public class ViewportHelperPro
Material = material,
};
}
/// <summary>
/// 通过三角形实体集合生成面模型(只生成不添加)
/// </summary>
/// <param name="entities"></param>
/// <param name="color"></param>
/// <returns></returns>
public static List<MeshGeometryModel3D> GenerateModelByEntityGroupByType(List<Viewport3DTriangleEntity> entities)
{
var groupedDict = entities
.GroupBy(e => e.PlaneType)
.ToDictionary(g => g.Key, g => g.ToList());
var result = new List<MeshGeometryModel3D>();
foreach (var group in groupedDict)
{
var key = group.Key;
}
return result;
}
private static Color4? GenFaceColor4(PlaneType planeType)
{
switch (planeType)
{
case PlaneType.Girdle:
return ViewportManager.LightGray;
case PlaneType.Crown :
return new Color4(1, 1, 1, 1);
}
return null;
}
/// <summary>
/// 保存模型截图
/// </summary>

@ -186,6 +186,28 @@ public class ViewportManager
}
}
/// <summary>
/// 是否显示主体模型
/// </summary>
/// <param name="isShow"></param>
public static void ShowMainModel3DByType(bool isShow)
{
if (MainModel3D == null) return;
if (_viewport == null) return;
if (isShow)
{
if(_viewport.Items.Contains(MainModel3D))
return;
else
_viewport.Items.Add(MainModel3D);
}
else
{
_viewport.Items.Remove(MainModel3D);
}
}
public static void ShowMainModelLines(bool isShow)
{
if (_viewport == null) return;

Loading…
Cancel
Save