# GeometryExtensionMethods class

Namespace: [Grasshopper2.Extensions](https://developer.rhino3d.com/api/gh2/namespace/grasshopper2.extensions.md) · Assembly: [Grasshopper2](https://developer.rhino3d.com/api/gh2/assembly/grasshopper2.md)

```cs
public static class GeometryExtensionMethods
```

Extension methods for several types in Rhino.Geometry.

## Methods

- [ClosestPointToInterior](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/closestpointtointerior.md): (static) Perform poor-man's brep face closest point logic. It projects the point to the underlying surface then back onto the trimmed portion if need be.
- [CreateSpanParameters](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/createspanparameters.md): (2 overloads, static) Create samples in curve parameter space using a fixed number of span-divisions.
- [DetermineSide](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/determineside.md): (static) Determine on which side of a curve a point falls.
- [EdgeFaceTable](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/edgefacetable.md): (static) Create a lookup table for edges and their adjacent faces.
- [EvaluateUvDirections](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/evaluateuvdirections.md): (static) Evaluate the UV directions at a surface parameter.
- [FindCocircularDomains](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/findcocirculardomains.md): (static) Find all the circular subdomains of a curve.
- [FindCollinearDomains](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/findcollineardomains.md): (static) Find all the linear subdomains of a curve.
- [FindRadiusCrossing](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/findradiuscrossing.md): (static) Find the parameter on the curve where the curvature radius crosses the given threshold.
- [GetAllDiscontinuities](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/getalldiscontinuities.md): (static) Iterate over all discontinuities on a curve. The start and end of the curve domain are *always* included.
- [GetSides](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/getsides.md): (static) Gets the 6 sides of a box as rectangles. Oriented such that the rectangle plane normal always points away from the box interior. The order of the faces is: bottom, left, front, right, back, top
- [PointOnInterior](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/pointoninterior.md): (4 overloads, static) Find the most remote point inside a set of closed polylines.
- [PointOnIsoInterior](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/pointonisointerior.md): (static) Return a point in the middle of the longest interior isocurve domain from a random sampling.
- [RadiusAt](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/radiusat.md): (static) Get the curvature radius at a parameter.
- [SampleSpans](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/samplespans.md): (static) Create an array of points sampled from each curve span.
- [SetAllVertices](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/setallvertices.md): (2 overloads, static)
- [Split](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/split.md): (static) Split a curve with a plane.
- [ToMeshSafe](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/tomeshsafe.md): (2 overloads, static) Mesh a surface in a thread-safe manner. See [GeometryExtensionMethods.ToMeshSafe(Brep, MeshingParameters, MeshType?)](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/tomeshsafe.md) for why this is necessary; this method locks on `surface` so it cannot be meshed on two threads at once.
- [ToPolyline](https://developer.rhino3d.com/api/gh2/type/grasshopper2.extensions.geometryextensionmethods/topolyline.md): (static) Convert a circle to a polyline.
