From 83ef655fb1aa7b7f9df0758e8374fb4beb685bec Mon Sep 17 00:00:00 2001 From: tongg Date: Sun, 15 Dec 2024 23:46:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8F=B3=E9=94=AE=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Language/zh_CN.xaml | 1 + Views/UserControl/Viewport3D.xaml | 1 + Views/UserControl/Viewport3D.xaml.cs | 5 +++ .../ViewportData/Helper/ViewportHelperPro.cs | 38 +++++++++++++++++++ .../ViewportData/Helper/ViewportManager.cs | 22 +++++++++++ 5 files changed, 67 insertions(+) diff --git a/Language/zh_CN.xaml b/Language/zh_CN.xaml index 62e8c3e..74e12bd 100644 --- a/Language/zh_CN.xaml +++ b/Language/zh_CN.xaml @@ -105,6 +105,7 @@ 正面视角 截图当前视角到PNG 显示模型面 + 显示模型面 显示模型边框 显示光照 双击选择面 diff --git a/Views/UserControl/Viewport3D.xaml b/Views/UserControl/Viewport3D.xaml index 628695b..1cbf31b 100644 --- a/Views/UserControl/Viewport3D.xaml +++ b/Views/UserControl/Viewport3D.xaml @@ -101,6 +101,7 @@ + diff --git a/Views/UserControl/Viewport3D.xaml.cs b/Views/UserControl/Viewport3D.xaml.cs index 01028a7..b164436 100644 --- a/Views/UserControl/Viewport3D.xaml.cs +++ b/Views/UserControl/Viewport3D.xaml.cs @@ -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); diff --git a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs index e2db11a..ba11257 100644 --- a/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs +++ b/Views/UserControl/ViewportData/Helper/ViewportHelperPro.cs @@ -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, }; } + + /// + /// 通过三角形实体集合生成面模型(只生成不添加) + /// + /// + /// + /// + public static List GenerateModelByEntityGroupByType(List entities) + { + var groupedDict = entities + .GroupBy(e => e.PlaneType) + .ToDictionary(g => g.Key, g => g.ToList()); + + var result = new List(); + 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; + } + /// /// 保存模型截图 /// diff --git a/Views/UserControl/ViewportData/Helper/ViewportManager.cs b/Views/UserControl/ViewportData/Helper/ViewportManager.cs index 672d5ae..6e2b91a 100644 --- a/Views/UserControl/ViewportData/Helper/ViewportManager.cs +++ b/Views/UserControl/ViewportData/Helper/ViewportManager.cs @@ -185,6 +185,28 @@ public class ViewportManager _viewport.Items.Remove(MainModel3D); } } + + /// + /// 是否显示主体模型 + /// + /// + 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) {