| | |
| | | } |
| | | |
| | | /// <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() |
| | | { |
| | | if (!Initialized) |
| | | { |
| | | return default; |
| | | } |
| | | return _allVisual3dDict.Values.Where(x => x is LinkDraw3D).Select(x => x as LinkDraw3D).ToList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 获取连接的Link3D |
| | | /// </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> |
| | | /// 获取连接的Node3D |
| | | /// </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> |
| | | /// 获取连接的Visual3D |
| | | /// </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) |
| | |
| | | return true; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 移除Visual3D |
| | | /// </summary> |
| | | public bool RemoveVisual3D(List<VisualDraw3D> visual3ds) |
| | | { |
| | | if (!Initialized) |
| | | { |
| | | return false; |
| | | } |
| | | if (visual3ds == null || visual3ds.Count < 1) |
| | | { |
| | | return false; |
| | | } |
| | | var result = true; |
| | | foreach (var item in visual3ds) |
| | | { |
| | | var bol = RemoveVisual3D(item); |
| | | if (!bol) |
| | | { |
| | | result = false; |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 创建辅助 |