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