///<summary>Get Polygon Perimeter Vertices</summary> public IReadOnlyCollection <VertexID> GetPolygonPerimeterVertices(PolygonID PolygonID) => EditableMesh_methods.GetPolygonPerimeterVertices_method.Invoke(ObjPointer, PolygonID);
///<summary>Returns the indexed triangle of the triangulated polygon</summary> public MeshTriangle GetPolygonTriangulatedTriangle(PolygonID PolygonID, int PolygonTriangleNumber) => EditableMesh_methods.GetPolygonTriangulatedTriangle_method.Invoke(ObjPointer, PolygonID, PolygonTriangleNumber);
///<summary>Create Missing Polygon Hole Edges</summary> public IReadOnlyCollection <EdgeID> CreateMissingPolygonHoleEdges(PolygonID PolygonID, int HoleNumber) => EditableMesh_methods.CreateMissingPolygonHoleEdges_method.Invoke(ObjPointer, PolygonID, HoleNumber);
///<summary>Find Polygon Perimeter Edge Number for Vertices</summary> public int FindPolygonPerimeterEdgeNumberForVertices(PolygonID PolygonID, VertexID EdgeVertexID0, VertexID EdgeVertexID1) => EditableMesh_methods.FindPolygonPerimeterEdgeNumberForVertices_method.Invoke(ObjPointer, PolygonID, EdgeVertexID0, EdgeVertexID1);
///<summary>Remove Polygon Perimeter Vertices</summary> public void RemovePolygonPerimeterVertices(PolygonID PolygonID, int FirstVertexNumberToRemove, int NumVerticesToRemove, bool bDeleteOrphanedVertexInstances) => EditableMesh_methods.RemovePolygonPerimeterVertices_method.Invoke(ObjPointer, PolygonID, FirstVertexNumberToRemove, NumVerticesToRemove, bDeleteOrphanedVertexInstances);
///<summary>Compute Polygon Plane</summary> public Plane ComputePolygonPlane(PolygonID PolygonID) => EditableMesh_methods.ComputePolygonPlane_method.Invoke(ObjPointer, PolygonID);
///<summary>Returns the indexed vertex on the given hole contour of the polygon</summary> public VertexID GetPolygonHoleVertex(PolygonID PolygonID, int HoleNumber, int PolygonVertexNumber) => EditableMesh_methods.GetPolygonHoleVertex_method.Invoke(ObjPointer, PolygonID, HoleNumber, PolygonVertexNumber);
///<summary>Compute Barycentric Weight for Point on Polygon</summary> public (MeshTriangle, Vector, bool) ComputeBarycentricWeightForPointOnPolygon(PolygonID PolygonID, Vector PointOnPolygon) => EditableMesh_methods.ComputeBarycentricWeightForPointOnPolygon_method.Invoke(ObjPointer, PolygonID, PointOnPolygon);
///<summary>Returns the number of hole contours this polygon has</summary> public int GetPolygonHoleCount(PolygonID PolygonID) => EditableMesh_methods.GetPolygonHoleCount_method.Invoke(ObjPointer, PolygonID);
///<summary>Get Polygon Hole Edge</summary> public EdgeID GetPolygonHoleEdge(PolygonID PolygonID, int HoleNumber, int HoleEdgeNumber) => EditableMesh_methods.GetPolygonHoleEdge_method.Invoke(ObjPointer, PolygonID, HoleNumber, HoleEdgeNumber);
///<summary>Get Polygon Adjacent Polygons</summary> public IReadOnlyCollection <PolygonID> GetPolygonAdjacentPolygons(PolygonID PolygonID) => EditableMesh_methods.GetPolygonAdjacentPolygons_method.Invoke(ObjPointer, PolygonID);
///<summary>Returns the polygon group this polygon is assigned to</summary> public PolygonGroupID GetGroupForPolygon(PolygonID PolygonID) => EditableMesh_methods.GetGroupForPolygon_method.Invoke(ObjPointer, PolygonID);
///<summary>Find Polygon Perimeter Vertex Number for Vertex</summary> public int FindPolygonPerimeterVertexNumberForVertex(PolygonID PolygonID, VertexID VertexID) => EditableMesh_methods.FindPolygonPerimeterVertexNumberForVertex_method.Invoke(ObjPointer, PolygonID, VertexID);
///<summary>Returns the number of triangles which make up this polygon</summary> public int GetPolygonTriangulatedTriangleCount(PolygonID PolygonID) => EditableMesh_methods.GetPolygonTriangulatedTriangleCount_method.Invoke(ObjPointer, PolygonID);
///<summary>Returns the number of vertices on the indexed hole contour for this polygon</summary> public int GetPolygonHoleVertexCount(PolygonID PolygonID, int HoleNumber) => EditableMesh_methods.GetPolygonHoleVertexCount_method.Invoke(ObjPointer, PolygonID, HoleNumber);
///<summary>Insert Polygon Perimeter Vertices</summary> public void InsertPolygonPerimeterVertices(PolygonID PolygonID, int InsertBeforeVertexNumber, byte VerticesToInsert /*TODO: array TArray */) => EditableMesh_methods.InsertPolygonPerimeterVertices_method.Invoke(ObjPointer, PolygonID, InsertBeforeVertexNumber, VerticesToInsert);
///<summary>Get Polygon Hole Vertices</summary> public IReadOnlyCollection <VertexID> GetPolygonHoleVertices(PolygonID PolygonID, int HoleNumber) => EditableMesh_methods.GetPolygonHoleVertices_method.Invoke(ObjPointer, PolygonID, HoleNumber);
///<summary>Returns whether the given polygon ID is valid</summary> public bool IsValidPolygon(PolygonID PolygonID) => EditableMesh_methods.IsValidPolygon_method.Invoke(ObjPointer, PolygonID);
///<summary>Get Polygon Perimeter Edge</summary> public (bool, EdgeID) GetPolygonPerimeterEdge(PolygonID PolygonID, int PerimeterEdgeNumber) =>
///<summary>Compute Polygon Normal</summary> public Vector ComputePolygonNormal(PolygonID PolygonID) => EditableMesh_methods.ComputePolygonNormal_method.Invoke(ObjPointer, PolygonID);
///<summary>Returns the number of vertices on this polygon's perimeter</summary> public int GetPolygonPerimeterVertexCount(PolygonID PolygonID) => EditableMesh_methods.GetPolygonPerimeterVertexCount_method.Invoke(ObjPointer, PolygonID);
///<summary>Compute Polygon Triangulation</summary> public IReadOnlyCollection <MeshTriangle> ComputePolygonTriangulation(PolygonID PolygonID) => EditableMesh_methods.ComputePolygonTriangulation_method.Invoke(ObjPointer, PolygonID);
///<summary>Returns the indexed vertex instance on this polygon's perimeter</summary> public VertexInstanceID GetPolygonPerimeterVertexInstance(PolygonID PolygonID, int PolygonVertexNumber) => EditableMesh_methods.GetPolygonPerimeterVertexInstance_method.Invoke(ObjPointer, PolygonID, PolygonVertexNumber);
///<summary>Create Missing Polygon Perimeter Edges</summary> public IReadOnlyCollection <EdgeID> CreateMissingPolygonPerimeterEdges(PolygonID PolygonID) => EditableMesh_methods.CreateMissingPolygonPerimeterEdges_method.Invoke(ObjPointer, PolygonID);
///<summary>Find Polygon Hole Vertex Number for Vertex</summary> public int FindPolygonHoleVertexNumberForVertex(PolygonID PolygonID, int HoleNumber, VertexID VertexID) => EditableMesh_methods.FindPolygonHoleVertexNumberForVertex_method.Invoke(ObjPointer, PolygonID, HoleNumber, VertexID);