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.edgeIndex
andd.edgeParam
specify the location of the closest point.d.code
classifies the closest point as a vertex (PolygonLocation.OnPolygonVertex
) or as a point on an edge (PolygonLocation.OnPolygonEdgeInterior
).d.a
is the distance from testPoint to the closest point.d.v
can be used to classify p (if p and polygon are coplanar): if n is the polygon normal thend.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.edgeIndex
andd.edgeParam
specify the location of the closest point.d.code
classifies the closest point as a vertex (PolygonLocation.OnPolygonVertex
) or as a point on an edge (PolygonLocation.OnPolygonEdgeInterior
).d.a
is the distance from testPoint to the closest point.d.v
can be used to classify p (if p and polygon are coplanar): if n is the polygon normal thend.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: 14 November, 2024
Found something wrong, missing, or unclear on this page?Raise an issue in our repo.