From abf1e3b3334ab47c38aa92405a11a6ec92b7847a Mon Sep 17 00:00:00 2001
From: lixiaojun <1287241240@qq.com>
Date: 星期四, 31 十月 2024 17:18:37 +0800
Subject: [PATCH] bimface 水流

---
 WinFrmUI/Yw.WinFrmUI.Hydro.L2d.Core/01-network/00-core/Network_Method.cs |   81 ++++++++++++++++++++++++++++++++++++++++
 1 files changed, 81 insertions(+), 0 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.L2d.Core/01-network/00-core/Network_Method.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.L2d.Core/01-network/00-core/Network_Method.cs
index 25ce1ff..c7cd81c 100644
--- a/WinFrmUI/Yw.WinFrmUI.Hydro.L2d.Core/01-network/00-core/Network_Method.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Hydro.L2d.Core/01-network/00-core/Network_Method.cs
@@ -71,6 +71,87 @@
             }
         }
 
+        /// <summary>
+        /// 缁樺埗
+        /// </summary>
+        /// <param name="g"></param>
+        /// <param name="dispRectf">鏄剧ず鍖哄煙</param>
+        public void Draw(Graphics g, RectangleF dispRectf)
+        {
+            foreach (var link in this.Links)
+            {
+                if (link.Intersect(dispRectf))
+                {
+                    link.Draw(g);
+                }
+
+            }
+            foreach (var node in this.Nodes)
+            {
+                if (node.Intersect(dispRectf))
+                {
+                    node.Draw(g);
+                }
+
+            }
+        }
+
+        /// <summary>
+        /// 閫夋嫨
+        /// </summary>
+        public List<Parter> Select(PointF pt)
+        {
+            int i = 0;
+            foreach (var node in this.Nodes)
+            {
+                node.Selected = node.Contains(pt);
+                if (node.Selected)
+                {
+                    i++;
+                }
+            }
+
+            if (i > 0)
+            {
+                this.Links.ForEach(x => x.Selected = false);
+                return this.Nodes.Where(x => x.Selected).Select(x => x as Parter).ToList();
+            }
+
+            foreach (var link in this.Links)
+            {
+                link.Selected = link.Contains(pt);
+            }
+            return this.Links.Where(x => x.Selected).Select(x => x as Parter).ToList();
+        }
+
+        /// <summary>
+        /// 鎮仠
+        /// </summary>
+        public List<Parter> Hover(PointF pt)
+        {
+            int i = 0;
+            foreach (var node in this.Nodes)
+            {
+                node.Hovered = node.Contains(pt);
+                if (node.Hovered)
+                {
+                    i++;
+                }
+            }
+
+            if (i > 0)
+            {
+                this.Links.ForEach(x => x.Hovered = false);
+                return this.Nodes.Where(x => x.Hovered).Select(x => x as Parter).ToList();
+            }
+
+            foreach (var link in this.Links)
+            {
+                link.Hovered = link.Contains(pt);
+            }
+            return this.Links.Where(x => x.Hovered).Select(x => x as Parter).ToList();
+        }
+
 
     }
 }

--
Gitblit v1.9.3