From 1f9175051e468da4007fcdf6e882d24002166be7 Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期二, 06 五月 2025 16:08:31 +0800
Subject: [PATCH] 修改编辑功能,增加编辑改变事件

---
 Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs |   71 +++++++++++++++++++++++++++++++++++
 1 files changed, 71 insertions(+), 0 deletions(-)

diff --git a/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs b/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs
index 9bdea28..1fa5160 100644
--- a/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs
+++ b/Yw.WpfUI.Hydro.L3d.Core/03-draw/00-core/01-initial/DrawInitialHelper.cs
@@ -142,6 +142,18 @@
         }
 
         /// <summary>
+        /// 鑾峰彇Node3D
+        /// </summary>
+        public List<NodeDraw3D> GetNode3D()
+        {
+            if (!Initialized)
+            {
+                return default;
+            }
+            return _allVisual3dDict.Values.Where(x => x is NodeDraw3D).Select(x => x as NodeDraw3D).ToList();
+        }
+
+        /// <summary>
         /// 鑾峰彇Link3D
         /// </summary>
         public List<LinkDraw3D> GetLink3D()
@@ -154,6 +166,65 @@
         }
 
         /// <summary>
+        /// 鑾峰彇杩炴帴鐨凩ink3D
+        /// </summary>
+        public List<LinkDraw3D> GetConnectLink3D(NodeDraw3D node3d)
+        {
+            if (!Initialized)
+            {
+                return default;
+            }
+            var node = node3d.Visual;
+            var link3ds = GetLink3D();
+            return link3ds.Where(x => x.Visual.StartNode == node || x.Visual.EndNode == node).ToList();
+        }
+
+        /// <summary>
+        /// 鑾峰彇杩炴帴鐨凬ode3D
+        /// </summary>
+        public List<NodeDraw3D> GetConnectNode3D(LinkDraw3D link3d)
+        {
+            if (!Initialized)
+            {
+                return default;
+            }
+            var node3ds = GetNode3D();
+            return node3ds.Where(x => x.Visual == link3d.Visual.StartNode || x.Visual == link3d.Visual.EndNode).ToList();
+        }
+
+        /// <summary>
+        /// 鑾峰彇杩炴帴鐨刅isual3D
+        /// </summary>
+        public List<VisualDraw3D> GetConnect3D(VisualDraw3D visual3d)
+        {
+            if (!Initialized)
+            {
+                return default;
+            }
+            var list = new List<VisualDraw3D>();
+            if (visual3d is NodeDraw3D node3d)
+            {
+                var link3ds = GetConnectLink3D(node3d);
+                link3ds?.ForEach(x => list.Add(x));
+                return list;
+            }
+            if (visual3d is LinkDraw3D link3d)
+            {
+                var node3ds = GetConnectNode3D(link3d);
+                if (node3ds != null && node3ds.Count > 0)
+                {
+                    foreach (var item in node3ds)
+                    {
+                        list.Add(item);
+                        var link3ds = GetConnectLink3D(item);
+                        link3ds?.ForEach(x => list.Add(x));
+                    }
+                }
+            }
+            return list;
+        }
+
+        /// <summary>
         /// 娣诲姞Visual3D
         /// </summary>
         public bool AddVisual3D(VisualDraw3D visual3d)

--
Gitblit v1.9.3