// search all triangles using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinDataset.SearchTriangles(null)) { while (triangleCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current) { } } } // search within an extent ArcGIS.Core.Data.Analyst3D.TinTriangleFilter triangleFilter = new ArcGIS.Core.Data.Analyst3D.TinTriangleFilter(); triangleFilter.FilterEnvelope = envelope; using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinDataset.SearchTriangles(triangleFilter)) { while (triangleCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current) { } } } // search all "inside" triangles triangleFilter = new ArcGIS.Core.Data.Analyst3D.TinTriangleFilter(); triangleFilter.FilterType = ArcGIS.Core.Data.Analyst3D.TinFilterType.InsideDataArea; using (ArcGIS.Core.Data.Analyst3D.TinTriangleCursor triangleCursor = tinDataset.SearchTriangles(triangleFilter)) { while (triangleCursor.MoveNext()) { using (ArcGIS.Core.Data.Analyst3D.TinTriangle triangle = triangleCursor.Current) { } } }
// 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) { } } }
Target Platforms: Windows 11, Windows 10