public sealed class TinTriangle : TinElement, System.IDisposable
Public NotInheritable Class TinTriangle Inherits TinElement Implements System.IDisposable
public sealed class TinTriangle : TinElement, System.IDisposable
Public NotInheritable Class TinTriangle 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 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) { } } }
// nodes, edges of the triangle var triNnodes = triangle.Nodes; var triEdges = triangle.Edges; // triangle geometry var polygon = triangle.ToPolygon(); // triangle length var triLength = triangle.Length; // triangle area var triArea = triangle.Area; // is the triangle "inside" var isInsideTriangle = triangle.IsInsideDataArea; // triangle aspect and slope (radians) var aspect = triangle.Aspect; var slope = triangle.Slope; // get centroid var centroid = triangle.GetCentroid(); // get normal var normal = triangle.GetNormal(); // get adjacent triangles var adjTriangles = triangle.GetAdjacentTriangles(); // get area of triangle that falls between the z values double minZ = 1.0; double maxZ = 3.0; IReadOnlyList<Coordinate3D> coords = triangle.GetPointsBetweenZs(minZ, maxZ);
// 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.TinTriangle
Target Platforms: Windows 11, Windows 10