s&box docs

public sealed class Sandbox.PolygonMesh

An editable mesh made up of polygons, triangulated into a model

Constructors

Showing 1 constructors

public PolygonMesh()

Methods

Showing 140 methods

public HalfEdgeMesh.FaceHandle AddFace(HalfEdgeMesh.VertexHandle[] hVertices)

Connect these vertices to make a face

public HalfEdgeMesh.VertexHandle[] AddVertices(Vector3[] positions)

Add multiple vertices to the topology

public void ApplyTransform(Transform transform)

Transform all the vertices

public void AverageEdgeUVs(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges)

public void AverageVertexUVs(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.VertexHandle> vertices)

public bool BevelEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, Sandbox.PolygonMesh.BevelEdgesMode edgeRemoveMode, int numSegments, float distance, float shape, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outNewOuterEdges = null, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outNewInnerEdges = null, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outNewFaces = null, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outFacesNeedingUVs = null)

Parameters

  • outNewOuterEdges: Default: null
  • outNewInnerEdges: Default: null
  • outNewFaces: Default: null
  • outFacesNeedingUVs: Default: null

public bool BevelVertices(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.VertexHandle> vertices, float distance, System.Collections.Generic.List`1<HalfEdgeMesh.VertexHandle> newVertices)

public HalfEdgeMesh.ComponentConnectivityType ClassifyEdgeListConnectivity(System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> edgeList, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outSortedEdges = null)

Parameters

  • outSortedEdges: Default: null

public void ClipFacesByPlaneAndCap(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, Sandbox.Plane planeInMeshSpace, bool removeFacesBehindPlane, bool attemptToCap, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outNewEdges = null, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outCapFaces = null)

Parameters

  • outNewEdges: Default: null
  • outCapFaces: Default: null

public void CollapseEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges)

public void CombineFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces)

public bool ComputeClosestPointOnEdge(HalfEdgeMesh.VertexHandle hVertexA, HalfEdgeMesh.VertexHandle hVertexB, Vector3 vTargetPoint, float pOutBaseEdgeParam)

public bool ConnectEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> newEdges)

public bool CorrelateOpenEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeSetA, System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeSetB, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outA, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outB)

public HalfEdgeMesh.VertexHandle CreateEdgesConnectingVertexToPoint(HalfEdgeMesh.VertexHandle hStartVertex, Vector3 vTargetPosition, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> pOutEdgeList, bool pOutIsLastEdgeConnector, System.Collections.Generic.SortedSet`1<HalfEdgeMesh.HalfEdgeHandle> pEdgeTable)

public bool CreateFaceInEdgeLoop(HalfEdgeMesh.HalfEdgeHandle hOpenEdge, HalfEdgeMesh.FaceHandle hNewFace)

Add a face filling in the open edge loop specified by the provided edge

public void DetachFaces(HalfEdgeMesh.FaceHandle[] faces, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> newFaces)

public bool ExtendEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, float amount, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> newEdges, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> newFaces)

public void ExtrudeFaces(HalfEdgeMesh.FaceHandle[] faces, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> newFaces, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> connectingFaces, Vector3 offset = null)

Parameters

  • offset: Default: null

public HalfEdgeMesh.FaceHandle FaceHandleFromIndex(int index)

public void FindBoundaryEdgesConnectedToFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outBoundaryEdges)

public void FindClosedFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faceList, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outClosedFaces)

public void FindCornerVerticesForFace(HalfEdgeMesh.FaceHandle hFace, float minCornerAngle, System.Collections.Generic.List`1<HalfEdgeMesh.VertexHandle> outCornerVertices)

public void FindEdgeIslands(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeList, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outEdgeList)

public void FindEdgeLoopForEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> originalEdges, HalfEdgeMesh.HalfEdgeHandle[] pOutEdgeLoopEdges)

public int FindEdgeRibs(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outLeftRibs, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outRightRibs)

public void FindFaceIslands(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle>> outFaces)

public bool FindHalfEdgesConnectedToFace(HalfEdgeMesh.FaceHandle face, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> halfEdges)

public void FindOpenEdgeIslands(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeList, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outEdgeIslands)

public void FlipAllFaces()

public void GenerateUVsForFaces(System.ReadOnlySpan`1<HalfEdgeMesh.FaceHandle> faces, int generationMode, int edgeAlignMode, HalfEdgeMesh.HalfEdgeHandle alignEdgeVertexA, HalfEdgeMesh.HalfEdgeHandle alignEdgeVertexB, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outFaceVertices, System.Collections.Generic.List`1<Vector2> outFaceVertexUVs)

public static void GetBestPlanesForEdgeBetweenFaces(Sandbox.PolygonMesh pMesh1, HalfEdgeMesh.FaceHandle hFace1, Transform mLocalToWorld1, Sandbox.PolygonMesh pMesh2, HalfEdgeMesh.FaceHandle hFace2, Transform mLocalToWorld2, Sandbox.Plane pOutPlane1, Sandbox.Plane pOutPlane2)

public Line GetEdgeLine(HalfEdgeMesh.HalfEdgeHandle hEdge)

Get start and end points of an edge

public System.Collections.Generic.IEnumerable`1<Line> GetEdges()

Get the start and end points of all edges

public bool GetEdgesConnectedToFace(HalfEdgeMesh.FaceHandle hFace, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> edges)

public bool GetEdgesConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> edges)

public Vector3 GetFaceCenter(HalfEdgeMesh.FaceHandle hFace)

Calculate the center point of a face

public Sandbox.Material GetFaceMaterial(HalfEdgeMesh.FaceHandle hFace)

Get a material a face is using

public bool GetFacesConnectedToFace(HalfEdgeMesh.FaceHandle hFace, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> faces)

public bool GetFacesConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> faces)

public System.Collections.Generic.IEnumerable`1<Vector3> GetFaceVertexPositions(HalfEdgeMesh.FaceHandle hFace, Transform transform)

public HalfEdgeMesh.VertexHandle[] GetFaceVertices(HalfEdgeMesh.FaceHandle hFace)

Get all vertex handles of a face

public bool GetFaceVerticesConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> faceVertices)

public HalfEdgeMesh.FaceHandle GetHalfEdgeFace(HalfEdgeMesh.HalfEdgeHandle hEdge)

Get the face connected to this half edge

public Vector2 GetTextureOffset(HalfEdgeMesh.FaceHandle hFace)

Get texture offset of a face

public Vector2 GetTextureScale(HalfEdgeMesh.FaceHandle hFace)

Get texture scale of a face

public System.Collections.Generic.IEnumerable`1<Vector3> GetVertexPositions()

Get the positions of all vertices

public bool IsEdgeOpen(HalfEdgeMesh.HalfEdgeHandle hEdge)

Determine if the specified edge is open (only has one connected face)

public static override object JsonRead(System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert)

public static override void JsonWrite(object value, System.Text.Json.Utf8JsonWriter writer)

public void JustifyFaceTextureParameters(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> hFaces, Sandbox.PolygonMesh.TextureJustification justification, Sandbox.PolygonMesh.FaceExtents extents)

public int MergeVerticesWithinDistance(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.VertexHandle> originalVertices, float flMaxDistance, bool bPreConnect, bool bAveragePositions, System.Collections.Generic.List`1<HalfEdgeMesh.VertexHandle> pOutFinalVertices)

public void QuadSliceFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, int cutsX, int cutsY, float minCornerAngleDegrees, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outNewFaceList)

public Sandbox.Model Rebuild()

Triangulate the polygons into a model

public void RemoveBadFaces()

public bool RemoveColinearVertexAndUpdateTable(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.SortedSet`1<HalfEdgeMesh.HalfEdgeHandle> edgeTable, float flColinearAngleTolerance = 5)

Parameters

  • flColinearAngleTolerance: Default: 5

public void RemoveEdges(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.HalfEdgeHandle> hEdges)

public void RemoveFaces(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> hFaces)

public bool RemoveVertex(HalfEdgeMesh.VertexHandle hVertex, bool removeFreeVerts)

public void RemoveVertices(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.VertexHandle> hVertices)

public void Scale(Vector3 scale)

Scale all vertices

public void SetFaceTextureCoords(HalfEdgeMesh.FaceHandle hFace, System.Collections.Generic.IReadOnlyList`1<Vector2> texcoords)

public void SetSmoothingAngle(float smoothingAngle)

public void SetTextureCoord(HalfEdgeMesh.HalfEdgeHandle faceVertex, Vector2 texcoord)

Set face vertex texture coord

public void SetTextureOffset(HalfEdgeMesh.FaceHandle hFace, Vector2 offset)

Set texture offset of a face

public void SetTextureScale(HalfEdgeMesh.FaceHandle hFace, Vector2 scale)

Set texture scale of a face

public void SetTransform(Transform transform)

Set transform without computing texture parameters from coordinates.

public void SetVertexBlend(HalfEdgeMesh.HalfEdgeHandle hFaceVertex, Color32 blend)

Set the blend of a vertex

public void SetVertexColor(HalfEdgeMesh.HalfEdgeHandle hFaceVertex, Color32 color)

Set the color of a vertex

public void SetVertexPosition(HalfEdgeMesh.VertexHandle hVertex, Vector3 position)

Set the position of a vertex

public void SplitFacesIntoIslandsForUVMapping(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle>> faceIslands)

public void TextureAlignToFace(Transform transform, HalfEdgeMesh.FaceHandle hFace)

Align face texture properties to face

public bool ThickenFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, float amount, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outFaces)

public HalfEdgeMesh.FaceHandle TriangleToFace(int triangle)

Convert a triangle index to a face handle

public void UnionExtentsForFaces(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> hFaces, Transform transform, Sandbox.PolygonMesh.FaceExtents extents)

public HalfEdgeMesh.VertexHandle VertexHandleFromIndex(int index)

Properties

Showing 5 properties

public System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> Sandbox.PolygonMesh.FaceHandles { get; set; }

All of the face handles being used

public System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.HalfEdgeHandle> Sandbox.PolygonMesh.HalfEdgeHandles { get; set; }

All of the half edge handles being used

public bool Sandbox.PolygonMesh.IsDirty { get; set; }

Has there been changes to the mesh that need rebuilding?

public Transform Sandbox.PolygonMesh.Transform { get; set; }

Where is the mesh in worldspace.

public System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.VertexHandle> Sandbox.PolygonMesh.VertexHandles { get; set; }

All of the vertex handles being used

Metadata

FieldValue
NamespaceSandbox
Typeclass
AssemblySandbox.Engine
Doc IDT:Sandbox.PolygonMesh

On this page

Constructorspublic PolygonMesh()Methodspublic HalfEdgeMesh.FaceHandle AddFace(HalfEdgeMesh.VertexHandle[] hVertices)public HalfEdgeMesh.VertexHandle AddVertex(Vector3 position)public System.Boolean AddVertexToEdge(HalfEdgeMesh.VertexHandle hVertexA, HalfEdgeMesh.VertexHandle hVertexB, System.Single flParam, HalfEdgeMesh.VertexHandle pOutNewVertex)public System.Boolean AddVertexToEdgeAndUpdateTable(HalfEdgeMesh.VertexHandle hVertexA, HalfEdgeMesh.VertexHandle hVertexB, System.Single flParam, HalfEdgeMesh.VertexHandle pNewVertex, System.Collections.Generic.SortedSet`1<HalfEdgeMesh.HalfEdgeHandle> pEdgeTable)public HalfEdgeMesh.VertexHandle[] AddVertices(Vector3[] positions)public System.Void ApplyTransform(Transform transform)public System.Boolean AreEdgesCoLinear(HalfEdgeMesh.HalfEdgeHandle hEdgeA, HalfEdgeMesh.HalfEdgeHandle hEdgeB, System.Single flAngleToleranceInDegrees)public System.Void AverageEdgeUVs(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges)public System.Void AverageVertexUVs(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.VertexHandle> vertices)public System.Boolean BevelEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, Sandbox.PolygonMesh.BevelEdgesMode edgeRemoveMode, System.Int32 numSegments, System.Single distance, System.Single shape, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outNewOuterEdges = null, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outNewInnerEdges = null, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outNewFaces = null, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outFacesNeedingUVs = null)public System.Boolean BevelVertices(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.VertexHandle> vertices, System.Single distance, System.Collections.Generic.List`1<HalfEdgeMesh.VertexHandle> newVertices)public System.Boolean BridgeEdges(HalfEdgeMesh.HalfEdgeHandle hEdgeA, HalfEdgeMesh.HalfEdgeHandle hEdgeB, HalfEdgeMesh.FaceHandle hOutNewFace)public System.Boolean BridgeEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgesA, System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgesB)public System.Boolean BridgeEdgesInterpolated(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> fromEdges, System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> toEdges, Sandbox.PolygonMesh.BridgeInterpolationParameters parameters, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outEdgesCreated)public BBox CalculateBounds()public BBox CalculateBounds(Transform transform)public HalfEdgeMesh.ComponentConnectivityType ClassifyEdgeListConnectivity(System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> edgeList, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outSortedEdges = null)public System.Void ClipFacesByPlaneAndCap(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, Sandbox.Plane planeInMeshSpace, System.Boolean removeFacesBehindPlane, System.Boolean attemptToCap, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outNewEdges = null, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outCapFaces = null)public System.Boolean CollapseEdge(HalfEdgeMesh.HalfEdgeHandle hEdge, HalfEdgeMesh.VertexHandle pOutNewVertex, System.Collections.Generic.List`1<System.ValueTuple`2<HalfEdgeMesh.HalfEdgeHandle,HalfEdgeMesh.HalfEdgeHandle>> pOutReplacedEdges)public System.Boolean CollapseEdge(HalfEdgeMesh.HalfEdgeHandle hHalfEdgeA, System.Single flParam, HalfEdgeMesh.VertexHandle pOutNewVertex, System.Collections.Generic.List`1<System.ValueTuple`2<HalfEdgeMesh.HalfEdgeHandle,HalfEdgeMesh.HalfEdgeHandle>> pOutReplacedEdges)public System.Void CollapseEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges)public System.Boolean CollapseFace(HalfEdgeMesh.FaceHandle hFace, HalfEdgeMesh.VertexHandle hOutVertex)public System.Void CombineFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces)public System.Boolean ComputeClosestPointOnEdge(HalfEdgeMesh.VertexHandle hVertexA, HalfEdgeMesh.VertexHandle hVertexB, Vector3 vTargetPoint, System.Single pOutBaseEdgeParam)public System.Void ComputeFaceNormal(HalfEdgeMesh.FaceHandle hFace, Vector3 pOutNormal)public System.Void ComputeFaceTextureCoordinatesFromParameters()public System.Void ComputeFaceTextureCoordinatesFromParameters(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> faces, Transform transform, System.Collections.Generic.IReadOnlyList`1<Vector2> textureSizes, System.Single defaultScale)public System.Void ComputeFaceTextureCoordinatesFromParameters(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> faces)public System.Void ComputeFaceTextureCoordinatesFromParameters(Transform transform)public System.Void ComputeFaceTextureParametersFromCoordinates()public System.Void ComputeFaceTextureParametersFromCoordinates(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.IReadOnlyList`1<Vector2> textureSizes, Transform transform)public System.Void ComputeFaceTextureParametersFromCoordinates(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> faces)public System.Boolean ComputeNormalForOpenEdgeLoop(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, Transform transform, Vector3 outNormal, Vector3 outMidPoint)public System.Boolean ComputeNormalForOpenEdgeLoop(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, Vector3 outNormal, Vector3 outMidPoint)public Vector3 ComputeOpenEdgeExtendDirection(HalfEdgeMesh.HalfEdgeHandle edge)public System.Boolean ConnectEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> newEdges)public System.Boolean ConnectVertices(HalfEdgeMesh.VertexHandle hVertexA, HalfEdgeMesh.VertexHandle hVertexB, HalfEdgeMesh.HalfEdgeHandle hNewEdge)public System.Boolean CorrelateOpenEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeSetA, System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeSetB, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outA, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outB)public HalfEdgeMesh.VertexHandle CreateEdgesConnectingVertexToPoint(HalfEdgeMesh.VertexHandle hStartVertex, Vector3 vTargetPosition, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> pOutEdgeList, System.Boolean pOutIsLastEdgeConnector, System.Collections.Generic.SortedSet`1<HalfEdgeMesh.HalfEdgeHandle> pEdgeTable)public Sandbox.Vertex[] CreateFace(HalfEdgeMesh.FaceHandle hFace, Transform transform, Color color)public System.Boolean CreateFaceInEdgeLoop(HalfEdgeMesh.HalfEdgeHandle hOpenEdge, HalfEdgeMesh.FaceHandle hNewFace)public System.Void DetachFaces(HalfEdgeMesh.FaceHandle[] faces, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> newFaces)public System.Void DissolveEdge(HalfEdgeMesh.HalfEdgeHandle edge)public System.Void DissolveEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, System.Boolean bFaceMustBePlanar, Sandbox.PolygonMesh.DissolveRemoveVertexCondition removeCondition)public System.Boolean ExtendEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, System.Single amount, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> newEdges, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> newFaces)public System.Void ExtrudeFaces(HalfEdgeMesh.FaceHandle[] faces, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> newFaces, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> connectingFaces, Vector3 offset = null)public HalfEdgeMesh.FaceHandle FaceHandleFromIndex(System.Int32 index)public System.Void FindBoundaryEdgesConnectedToFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outBoundaryEdges)public System.Void FindClosedFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faceList, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outClosedFaces)public System.Void FindCornerVerticesForFace(HalfEdgeMesh.FaceHandle hFace, System.Single minCornerAngle, System.Collections.Generic.List`1<HalfEdgeMesh.VertexHandle> outCornerVertices)public System.Void FindEdgeIslands(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeList, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outEdgeList)public System.Void FindEdgeLoopForEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> originalEdges, HalfEdgeMesh.HalfEdgeHandle[] pOutEdgeLoopEdges)public System.Int32 FindEdgeRibs(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outLeftRibs, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outRightRibs)public System.Void FindEdgeRing(HalfEdgeMesh.HalfEdgeHandle hEdge, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outEdgeList)public System.Void FindFaceIslands(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle>> outFaces)public HalfEdgeMesh.HalfEdgeHandle FindFaceVertexConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, HalfEdgeMesh.FaceHandle hFace)public System.Boolean FindHalfEdgesConnectedToFace(HalfEdgeMesh.FaceHandle face, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> halfEdges)public System.Void FindOpenEdgeIslands(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edgeList, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle>> outEdgeIslands)public System.Void FlipAllFaces()public System.Void GenerateUVsForFaces(System.ReadOnlySpan`1<HalfEdgeMesh.FaceHandle> faces, System.Int32 generationMode, System.Int32 edgeAlignMode, HalfEdgeMesh.HalfEdgeHandle alignEdgeVertexA, HalfEdgeMesh.HalfEdgeHandle alignEdgeVertexB, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> outFaceVertices, System.Collections.Generic.List`1<Vector2> outFaceVertexUVs)public static System.Void GetBestPlanesForEdgeBetweenFaces(Sandbox.PolygonMesh pMesh1, HalfEdgeMesh.FaceHandle hFace1, Transform mLocalToWorld1, Sandbox.PolygonMesh pMesh2, HalfEdgeMesh.FaceHandle hFace2, Transform mLocalToWorld2, Sandbox.Plane pOutPlane1, Sandbox.Plane pOutPlane2)public Line GetEdgeLine(HalfEdgeMesh.HalfEdgeHandle hEdge)public System.Collections.Generic.IEnumerable`1<Line> GetEdges()public System.Boolean GetEdgesConnectedToFace(HalfEdgeMesh.FaceHandle hFace, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> edges)public System.Boolean GetEdgesConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> edges)public Sandbox.PolygonMesh.EdgeSmoothMode GetEdgeSmoothing(HalfEdgeMesh.HalfEdgeHandle hEdge)public System.Void GetEdgeVertexPositions(HalfEdgeMesh.HalfEdgeHandle hEdge, Transform transform, Vector3 outVertexA, Vector3 outVertexB)public System.Void GetEdgeVertices(HalfEdgeMesh.HalfEdgeHandle hEdge, HalfEdgeMesh.VertexHandle hVertexA, HalfEdgeMesh.VertexHandle hVertexB)public Vector3 GetFaceCenter(HalfEdgeMesh.FaceHandle hFace)public HalfEdgeMesh.HalfEdgeHandle[] GetFaceEdges(HalfEdgeMesh.FaceHandle hFace)public Sandbox.Material GetFaceMaterial(HalfEdgeMesh.FaceHandle hFace)public System.Void GetFacePlaneUsingEdge(HalfEdgeMesh.FaceHandle hFace, HalfEdgeMesh.HalfEdgeHandle hEdge, Transform transform, Sandbox.Plane outPlane)public System.Void GetFacesConnectedToEdge(HalfEdgeMesh.HalfEdgeHandle hEdge, HalfEdgeMesh.FaceHandle hOutFaceA, HalfEdgeMesh.FaceHandle hOutFaceB)public System.Boolean GetFacesConnectedToFace(HalfEdgeMesh.FaceHandle hFace, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> faces)public System.Boolean GetFacesConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> faces)public Vector2[] GetFaceTextureCoords(HalfEdgeMesh.FaceHandle hFace)public System.Void GetFaceTextureParameters(HalfEdgeMesh.FaceHandle hFace, Vector4 outAxisU, Vector4 outAxisV, Vector2 outScale)public System.Collections.Generic.IEnumerable`1<Vector3> GetFaceVertexPositions(HalfEdgeMesh.FaceHandle hFace, Transform transform)public HalfEdgeMesh.VertexHandle[] GetFaceVertices(HalfEdgeMesh.FaceHandle hFace)public System.Boolean GetFaceVerticesConnectedToFace(HalfEdgeMesh.FaceHandle hFace, HalfEdgeMesh.HalfEdgeHandle[] hEdges)public System.Boolean GetFaceVerticesConnectedToVertex(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.List`1<HalfEdgeMesh.HalfEdgeHandle> faceVertices)public HalfEdgeMesh.FaceHandle GetHalfEdgeFace(HalfEdgeMesh.HalfEdgeHandle hEdge)public static System.Boolean GetNearestEdgesBetweenFaces(Sandbox.PolygonMesh pMesh1, HalfEdgeMesh.FaceHandle hFace1, Transform mLocalToWorld1, Sandbox.PolygonMesh pMesh2, HalfEdgeMesh.FaceHandle hFace2, Transform mLocalToWorld2, HalfEdgeMesh.HalfEdgeHandle pOutEdge1, HalfEdgeMesh.HalfEdgeHandle pOutEdge2)public HalfEdgeMesh.HalfEdgeHandle GetNextVertexInFace(HalfEdgeMesh.HalfEdgeHandle hFaceVertex)public HalfEdgeMesh.FaceHandle GetOppositeFaceConnectedToEdge(HalfEdgeMesh.HalfEdgeHandle hEdge, HalfEdgeMesh.FaceHandle hFace)public HalfEdgeMesh.HalfEdgeHandle GetOppositeHalfEdge(HalfEdgeMesh.HalfEdgeHandle hEdge)public Vector2 GetTextureCoord(HalfEdgeMesh.HalfEdgeHandle faceVertex)public static System.Void GetTextureExtents(Vector4 vAxisU, Vector4 vAxisV, Vector2 vScale, Sandbox.PolygonMesh.FaceExtents extents, Vector2 topLeft, Vector2 bottomRight)public Vector2 GetTextureOffset(HalfEdgeMesh.FaceHandle hFace)public Vector2 GetTextureScale(HalfEdgeMesh.FaceHandle hFace)public Color32 GetVertexBlend(HalfEdgeMesh.HalfEdgeHandle hFaceVertex)public Color32 GetVertexColor(HalfEdgeMesh.HalfEdgeHandle hFaceVertex)public HalfEdgeMesh.VertexHandle GetVertexConnectedToFaceVertex(HalfEdgeMesh.HalfEdgeHandle hFaceVertex)public System.Void GetVertexPosition(HalfEdgeMesh.VertexHandle hVertex, Transform transform, Vector3 outPosition)public Vector3 GetVertexPosition(HalfEdgeMesh.VertexHandle hVertex)public System.Collections.Generic.IEnumerable`1<Vector3> GetVertexPositions()public System.Boolean GetVerticesConnectedToEdge(HalfEdgeMesh.HalfEdgeHandle hEdge, HalfEdgeMesh.FaceHandle hFace, HalfEdgeMesh.VertexHandle hOutVertexA, HalfEdgeMesh.VertexHandle hOutVertexB)public System.Void GetVerticesConnectedToEdge(HalfEdgeMesh.HalfEdgeHandle hEdge, HalfEdgeMesh.VertexHandle hOutVertexA, HalfEdgeMesh.VertexHandle hOutVertexB)public System.Boolean GetVerticesConnectedToFace(HalfEdgeMesh.FaceHandle hFace, HalfEdgeMesh.VertexHandle[] vertices)public HalfEdgeMesh.HalfEdgeHandle HalfEdgeHandleFromIndex(System.Int32 index)public System.Boolean IsEdgeOpen(HalfEdgeMesh.HalfEdgeHandle hEdge)public System.Boolean IsEdgeSmooth(HalfEdgeMesh.HalfEdgeHandle hEdge)public static override System.Object JsonRead(System.Text.Json.Utf8JsonReader reader, System.Type typeToConvert)public static override System.Void JsonWrite(System.Object value, System.Text.Json.Utf8JsonWriter writer)public System.Void JustifyFaceTextureParameters(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> hFaces, Sandbox.PolygonMesh.TextureJustification justification, Sandbox.PolygonMesh.FaceExtents extents)public System.Boolean MergeEdges(HalfEdgeMesh.HalfEdgeHandle hEdgeA, HalfEdgeMesh.HalfEdgeHandle hEdgeB, HalfEdgeMesh.HalfEdgeHandle hOutNewEdge)public System.Void MergeMesh(Sandbox.PolygonMesh sourceMesh, Transform transform, System.Collections.Generic.Dictionary`2<HalfEdgeMesh.VertexHandle,HalfEdgeMesh.VertexHandle> newVertices, System.Collections.Generic.Dictionary`2<HalfEdgeMesh.HalfEdgeHandle,HalfEdgeMesh.HalfEdgeHandle> newHalfEdges, System.Collections.Generic.Dictionary`2<HalfEdgeMesh.FaceHandle,HalfEdgeMesh.FaceHandle> newFaces)public System.Int32 MergeVerticesWithinDistance(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.VertexHandle> originalVertices, System.Single flMaxDistance, System.Boolean bPreConnect, System.Boolean bAveragePositions, System.Collections.Generic.List`1<HalfEdgeMesh.VertexHandle> pOutFinalVertices)public System.Void QuadSliceFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Int32 cutsX, System.Int32 cutsY, System.Single minCornerAngleDegrees, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outNewFaceList)public Sandbox.Model Rebuild()public System.Void RemoveBadFaces()public System.Boolean RemoveColinearVertexAndUpdateTable(HalfEdgeMesh.VertexHandle hVertex, System.Collections.Generic.SortedSet`1<HalfEdgeMesh.HalfEdgeHandle> edgeTable, System.Single flColinearAngleTolerance = 5)public System.Void RemoveEdges(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.HalfEdgeHandle> hEdges)public System.Void RemoveFaces(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> hFaces)public System.Boolean RemoveVertex(HalfEdgeMesh.VertexHandle hVertex, System.Boolean removeFreeVerts)public System.Void RemoveVertices(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.VertexHandle> hVertices)public System.Void Scale(Vector3 scale)public System.Void SetEdgeSmoothing(HalfEdgeMesh.HalfEdgeHandle hEdge, Sandbox.PolygonMesh.EdgeSmoothMode mode)public System.Void SetFaceMaterial(HalfEdgeMesh.FaceHandle hFace, Sandbox.Material material)public System.Void SetFaceMaterial(HalfEdgeMesh.FaceHandle hFace, System.String material)public System.Void SetFaceTextureCoords(HalfEdgeMesh.FaceHandle hFace, System.Collections.Generic.IReadOnlyList`1<Vector2> texcoords)public System.Void SetFaceTextureParameters(HalfEdgeMesh.FaceHandle hFace, Vector2 offset, Vector3 uAxis, Vector3 vAxis)public System.Void SetFaceTextureParameters(HalfEdgeMesh.FaceHandle hFace, Vector4 axisU, Vector4 axisV, Vector2 scale)public System.Void SetSmoothingAngle(System.Single smoothingAngle)public System.Void SetTextureCoord(HalfEdgeMesh.HalfEdgeHandle faceVertex, Vector2 texcoord)public System.Void SetTextureOffset(HalfEdgeMesh.FaceHandle hFace, Vector2 offset)public System.Void SetTextureScale(HalfEdgeMesh.FaceHandle hFace, Vector2 scale)public System.Void SetTransform(Transform transform)public System.Void SetVertexBlend(HalfEdgeMesh.HalfEdgeHandle hFaceVertex, Color32 blend)public System.Void SetVertexColor(HalfEdgeMesh.HalfEdgeHandle hFaceVertex, Color32 color)public System.Void SetVertexPosition(HalfEdgeMesh.VertexHandle hVertex, Vector3 position)public System.Boolean SplitEdges(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.HalfEdgeHandle> edges, HalfEdgeMesh.HalfEdgeHandle[] newEdgesA, HalfEdgeMesh.HalfEdgeHandle[] pOutNewEdgesB)public System.Void SplitFacesIntoIslandsForUVMapping(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Collections.Generic.List`1<System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle>> faceIslands)public System.Void TextureAlignToFace(Transform transform, HalfEdgeMesh.FaceHandle hFace)public System.Void TextureAlignToGrid(Transform transform, HalfEdgeMesh.FaceHandle hFace)public System.Void TextureAlignToGrid(Transform transform)public System.Boolean ThickenFaces(System.Collections.Generic.IReadOnlyList`1<HalfEdgeMesh.FaceHandle> faces, System.Single amount, System.Collections.Generic.List`1<HalfEdgeMesh.FaceHandle> outFaces)public HalfEdgeMesh.FaceHandle TriangleToFace(System.Int32 triangle)public System.Void UnionExtentsForFaces(System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> hFaces, Transform transform, Sandbox.PolygonMesh.FaceExtents extents)public HalfEdgeMesh.VertexHandle VertexHandleFromIndex(System.Int32 index)Propertiespublic System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.FaceHandle> Sandbox.PolygonMesh.FaceHandles { get; set; }public System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.HalfEdgeHandle> Sandbox.PolygonMesh.HalfEdgeHandles { get; set; }public System.Boolean Sandbox.PolygonMesh.IsDirty { get; set; }public Transform Sandbox.PolygonMesh.Transform { get; set; }public System.Collections.Generic.IEnumerable`1<HalfEdgeMesh.VertexHandle> Sandbox.PolygonMesh.VertexHandles { get; set; }Metadata