Back to class index
Polygon[Class Summary]
p
ctor
NumEdges()[const]
NumVertices()[const]
VertexArrayPtr() (+1 overload)
AnyPointFast()[const]
Vertex(vertexIndex)[const]
Edge(edgeIndex)[const]
Edge2D(edgeIndex)[const]
EdgeNormal(edgeIndex)[const]
EdgePlane(edgeIndex)[const]
ExtremePoint(direction)[const] (+1 overload)
ProjectToAxis(...)[const]
DiagonalExists(i,j)[const]
Diagonal(i,j)[const]
IsConvex()[const]
IsPlanar(epsilonSq)[const]
IsSimple()[const]
IsNull()[const]
IsFinite()[const]
IsDegenerate(epsilon)[const]
BasisU()[const]
BasisV()[const]
MapTo2D(i)[const] (+1 overload)
MapFrom2D(point)[const]
NormalCCW()[const]
NormalCW()[const]
PlaneCCW()[const]
PlaneCW()[const]
Translate(offset)
Transform(transform) (+3 overloads)
Contains(...)[const] (+3 overloads)
Contains2D(...)[const]
Intersects(line)[const] (+11 overloads)
ConvexIntersects(aabb)[const] (+2 overloads)
ClosestPoint(...)[const] (+2 overloads)
Distance(point)[const]
Area()[const]
Perimeter()[const]
Centroid()[const]
CenterPoint()[const]
PointOnEdge(normalizedDistance)[const]
RandomPointOnEdge(rng)[const]
FastRandomPointInside(rng)[const]
ToPolyhedron()[const]
Triangulate()[const]
MinimalEnclosingAABB()[const]
ToString()[const]
SerializeToString()[const]
Equals(other)[const]
BitEquals(other)[const]
NumFaces()[static]
FromString(str,outEndStr)[static] (+1 overload)

Polygon::ClosestPoint

Syntax

float4 Polygon::ClosestPoint(const LineSegment &lineSegment, float4 *lineSegmentPt) const; [22 lines of code]
float4 Polygon::ClosestPoint(const LineSegment &lineSegment) const; [4 lines of code]
float4 Polygon::ClosestPoint(const float4 &point) const; [19 lines of code]

Computes the closest point on this polygon to the given object.

If the other object intersects this polygon, this function will return an arbitrary point inside the region of intersection.

Parameters

const LineSegment &lineSegmentThe line segment to find the closest point to. float4 *lineSegmentPt [out]If specified, receives the closest point on the line segment to this polygon. This pointer may be null.

See Also

Contains(), Distance(), Intersects().

Work in progress:

Todo: in float4 Polygon::ClosestPoint(const LineSegment &lineSegment, float4 *lineSegmentPt) const:
Add ClosestPoint(Line/Ray/Plane/Triangle/Polygon/Circle/Disc/AABB/OBB/Sphere/Capsule/Frustum/Polyhedron).