public sealed class TinNode : TinElement, System.IDisposable
Public NotInheritable Class TinNode Inherits TinElement Implements System.IDisposable
public sealed class TinNode : TinElement, System.IDisposable
Public NotInheritable Class TinNode Inherits TinElement Implements System.IDisposable
using (ArcGIS.Core.Data.Analyst3D.TinNode node = tinDataset.GetNodeByIndex(23)) { } using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = tinDataset.GetEdgeByIndex(45)) { } using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = tinDataset.GetTriangleByIndex(22)) { }
// search all nodes using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinDataset.SearchNodes(null)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } } // search within an extent ArcGIS.Core.Data.Analyst3D.TinNodeFilter nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter(); nodeFilter.FilterEnvelope = envelope; using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinDataset.SearchNodes(nodeFilter)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } } // search all "inside" nodes nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter(); nodeFilter.FilterType = ArcGIS.Core.Data.Analyst3D.TinFilterType.InsideDataArea; using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinDataset.SearchNodes(nodeFilter)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } } // search for super nodes only nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter(); nodeFilter.FilterEnvelope = tinDataset.GetSuperNodeExtent(); nodeFilter.SuperNode = true; using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinDataset.SearchNodes(nodeFilter)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } }
// node coordinates var coord3D = node.Coordinate3D; var mapPoint = node.ToMapPoint(); // is the node "inside" var isInsideNode = node.IsInsideDataArea; // get all other nodes connected to "node" IReadOnlyList<ArcGIS.Core.Data.Analyst3D.TinNode> adjNodes = node.GetAdjacentNodes(); // get all edges that share "node" as a from node. IReadOnlyList<ArcGIS.Core.Data.Analyst3D.TinEdge> edges = node.GetIncidentEdges(); // get all triangles that share "node" IReadOnlyList<ArcGIS.Core.Data.Analyst3D.TinTriangle> triangles = node.GetIncidentTriangles();
// search all "inside" nodes using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinLayer.SearchNodes(null)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } } // search "inside" nodes with an extent ArcGIS.Core.Data.Analyst3D.TinNodeFilter nodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter(); nodeFilter.FilterEnvelope = envelope; using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinLayer.SearchNodes(nodeFilter)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } } // search for super nodes only var supernodeFilter = new ArcGIS.Core.Data.Analyst3D.TinNodeFilter(); supernodeFilter.FilterEnvelope = tinDataset.GetSuperNodeExtent(); supernodeFilter.DataElementsOnly = false; supernodeFilter.SuperNode = true; using (ArcGIS.Core.Data.Analyst3D.TinNodeCursor nodeCursor = tinLayer.SearchNodes(nodeFilter)) { while (nodeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinNode node = nodeCursor.Current) { } } } // search all edges within an extent // this could include outside or edges attached to super nodes depending upon the extent ArcGIS.Core.Data.Analyst3D.TinEdgeFilter edgeFilterAll = new ArcGIS.Core.Data.Analyst3D.TinEdgeFilter(); edgeFilterAll.FilterEnvelope = envelope; edgeFilterAll.DataElementsOnly = false; using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinLayer.SearchEdges(edgeFilterAll)) { while (edgeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current) { } } } // search for hard edges in the TIN var edgeFilter = new ArcGIS.Core.Data.Analyst3D.TinEdgeFilter(); edgeFilter.FilterByEdgeType = true; edgeFilter.EdgeType = ArcGIS.Core.Data.Analyst3D.TinEdgeType.HardEdge; using (ArcGIS.Core.Data.Analyst3D.TinEdgeCursor edgeCursor = tinLayer.SearchEdges(edgeFilter)) { while (edgeCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinEdge edge = edgeCursor.Current) { } } } // search for "inside" triangles in an extent ArcGIS.Core.Data.Analyst3D.TinTriangleFilter triangleFilter = new ArcGIS.Core.Data.Analyst3D.TinTriangleFilter(); triangleFilter.FilterEnvelope = envelope; triangleFilter.DataElementsOnly = true; using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinLayer.SearchTriangles(triangleFilter)) { while (triangleCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current) { } } }
System.Object
ArcGIS.Core.CoreObjectsBase
ArcGIS.Core.Data.Analyst3D.TinElement
ArcGIS.Core.Data.Analyst3D.TinNode
Target Platforms: Windows 11, Windows 10