MiscFunctions Methods
The MiscFunctions type exposes the following members.
Methods
Name  Description  

AreaOf3DPolygon 
Calculate the area of any nonintersecting polygon in 3D space
This is faster than projecting to a 2D surface first in a seperate function.


AreaOfPolygon 
Calculate the area of any nonintersecting polygon.


DistancePointToLine(array<Double>[]()[][], array<Double>[]()[][], array<Double>[]()[][]) 
Returns the distance the point to line.


DistancePointToLine(array<Double>[]()[][], array<Double>[]()[][], array<Double>[]()[][], array<Double>[]()[][]%) 
Distances the point to line.


DistancePointToPlane(array<Double>[]()[][], array<Double>[]()[][], array<Double>[]()[][]) 
Returns the signed distance of the point to the plane.


DistancePointToPlane(array<Double>[]()[][], array<Double>[]()[][], Double) 
Returns the signed distance of the point to the plane. If the point is "above" the plane, then a positive
distance is return  if "below" then negative. This "above" means that the point is on the side of the
plane that the normal points towards.


DistancePointToPoint 
Distances the point to point.


FindSolidIntersections 
Returns lists of vertices that are inside vs. outside of each solid.


Get2DProjectionPoints(IList<(Of <<'(Vertex>)>>), array<Double>[]()[][], Boolean) 
Returns the positions (array of 3D arrays) of the vertices as that they would be represented in
the xy plane (although the zvalues will be nonzero). This does not destructively alter
the vertices.


Get2DProjectionPoints(IList<(Of <<'(Vertex>)>>), array<Double>[]()[][], array<Double,2>[,](,)[,][,]%, Boolean) 
Returns the positions (array of 3D arrays) of the vertices as that they would be represented in
the xy plane (although the zvalues will be nonzero). This does not destructively alter
the vertices.


Get2DProjectionPoints(IList<(Of <<'(Vertex>)>>), array<Double,2>[,](,)[,][,], Boolean, Double) 
Get2s the d projection points.


Get2DProjectionPoints(IList<(Of <<'(array<Double>[]()[][]>)>>), array<Double>[]()[][]) 
Gets the 2D projectsion points of vertices


GetMultipleSolids 
Gets all the individual solids from a tesselated solid.


IsPointInsidePolygon 
Determines if a point is inside a polygon, where a polygon is an ordered list of 2D points.
And the polygon is not selfintersecting


IsPointInsideTriangle(PolygonalFace, Vertex, Boolean) 
Returns whether a vertex lies on a triangle. User can specify whether the edges of the
triangle are considered "inside."


IsPointInsideTriangle(IList<(Of <<'(Vertex>)>>), Vertex, Boolean) 
Returns whether a vertex lies on a triangle. User can specify whether the edges of the
triangle are considered "inside."


IsVertexInsideSolid 
Determines if a point is inside a tesselated solid (polyhedron).
And the polygon is not selfintersecting
http://www.cescg.org/CESCG2012/papers/HorvatRaycasting_pointinpolyhedron_test.pdf


Perimeter(ICollection<(Of <<'(Point>)>>)) 
Gets the perimeter for a 2D set of points.


Perimeter(ICollection<(Of <<'(Vertex>)>>)) 
Gets the Perimeter (length of a loop) of a 3D set of Vertices.


PointCommonToThreePlanes 
Find the point common to three planes.


PointOnPlaneFromIntersectingLine 
Finds the point on the plane made by a line (which is described by connecting point1 and point2) intersecting
with that plane.


PointOnPlaneFromRay 
Finds the point on the plane made by a ray. If that ray is not going to pass through the
that plane, then null is returned.


PointOnTriangleFromLine 
Finds the point on the triangle made by a line. If that line is not going to pass through the
that triangle, then null is returned. The signed distance is positive if the vertex points to
the triangle along the direction (ray). User can also specify whether the edges of the triangle
are considered "inside."


SortAlongDirection 
Returns a list of sorted vertices along a set direction. Ties are broken by direction[1] then direction[2] if
available.
