# Class Polygon

Utility functions for working with polygons, lines, and other vector math.

All functions which accepts Vector3s but work in 2D space uses the XZ space if nothing else is said.

### Version

A lot of functions in this class have been moved to the VectorMath class the names have changed slightly and everything now consistently assumes a left handed coordinate system now instead of sometimes using a left handed one and sometimes using a right handed one. This is why the 'Left' methods redirect to methods named 'Right'. The functionality is exactly the same.

## Public Static Methods

Closest point on the triangle **abc** to the point **p**.

Closest point on the triangle **abc** to the point **p**.

Closest point on the triangle **abc** to the point **p** as barycentric coordinates.

Closest point on the triangle **abc** to the point **p**.

Closest point on a triangle when one axis is scaled.

Closest point on the triangle **abc** to the point **p** when seen from above.

Compress the mesh by removing duplicate vertices.

Returns if the triangle **ABC** contains the point **p**.

Checks if **p** is inside the polygon.

Returns if the triangle contains the point **p** when projected on the movement plane.

Returns if the triangle contains the point **p** when projected on a plane using the given projection.

Returns if the triangle **ABC** contains the point **p** in XZ space.

Returns if the triangle **ABC** contains the point **p**.

Checks if **p** is inside the polygon (XZ space).

Calculates convex hull in XZ space for the points.

Sample Y coordinate of the triangle (p1, p2, p3) at the point p in XZ space.

Divides each segment in the list into **subSegments** segments and fills the result list with the new points.

Given a set of edges between vertices, follows those edges and returns them as chains and cycles.

## Private/Protected Members

Cached dictionary to avoid excessive allocations.