closestPointOnBoundary MethodStatic
Compute the closest point on the polygon boundary to the given point.
- Compare to closestPoint.
closestPointOnBoundary(polygon: IndexedXYZCollection | Point3d[], testPoint: Point3d, tolerance: numberGeometry.smallMetricDistance, result?: PolygonLocationDetail): PolygonLocationDetail
@returns  details d of the closest point d.point:
- d.isValid()returns true if and only if the polygon is nontrivial.
- d.edgeIndexand- d.edgeParamspecify the location of the closest point.
- d.codeclassifies the closest point as a vertex (- PolygonLocation.OnPolygonVertex) or as a point on an edge (- PolygonLocation.OnPolygonEdgeInterior).
- d.ais the distance from testPoint to the closest point.
- d.vcan be used to classify p (if p and polygon are coplanar): if n is the polygon normal then- d.v.dotProduct(n)is +/-/0 if and only if p is inside/outside/on the polygon.
| Parameter | Type | Description | 
|---|---|---|
| polygon | IndexedXYZCollection | Point3d[] | points of the polygon, closure point optional | 
| testPoint | Point3d | point p to project onto the polygon edges. Works best when p is in the plane of the polygon. | 
| tolerance | number | optional distance tolerance to determine point-vertex and point-edge coincidence. | 
| result | PolygonLocationDetail | optional pre-allocated object to fill and return | 
Returns - PolygonLocationDetail
details d of the closest point d.point:
- d.isValid()returns true if and only if the polygon is nontrivial.
- d.edgeIndexand- d.edgeParamspecify the location of the closest point.
- d.codeclassifies the closest point as a vertex (- PolygonLocation.OnPolygonVertex) or as a point on an edge (- PolygonLocation.OnPolygonEdgeInterior).
- d.ais the distance from testPoint to the closest point.
- d.vcan be used to classify p (if p and polygon are coplanar): if n is the polygon normal then- d.v.dotProduct(n)is +/-/0 if and only if p is inside/outside/on the polygon.
Defined in
- geometry3d/PolygonOps.ts Line 927
Last Updated: 24 June, 2025
Found something wrong, missing, or unclear on this page? Raise an issue in our repo.