Table of Contents

Class GeoPolyline2

Namespace
GeometryHelper.Geometry
Assembly
GeometryHelper.dll

Whether a polyline touches another shape.

public sealed class GeoPolyline2 : IEquatable<GeoPolyline2>
Inheritance
GeoPolyline2
Implements
Inherited Members
Extension Methods

Constructors

GeoPolyline2(params GeoPoint2[])

Initializes a new GeoPolyline2 from parameter vertices.

GeoPolyline2(IEnumerable<GeoPoint2>)

Initializes a new GeoPolyline2 instance from a collection of vertices. Consecutive duplicate vertices are automatically filtered out.

Properties

EdgeCount

Gets the number of line segment edges in the polyline, which is always one less than the number of vertices: the chain stops at the last vertex instead of running back to the first.

EndPoint

Gets the last vertex, where the chain ends.

this[int]

Gets the vertex at a given index.

Length

Gets the total cumulative length of all segments in the polyline.

MidPoint

Gets the point half way along the polyline, which can be used to probe the location of the whole polyline.

StartPoint

Gets the first vertex, where the chain starts.

VertexCount

Gets the number of vertices.

Vertices

Gets the read-only list of vertices of the polyline.

Methods

BuildIndex()

Builds a spatial index over the edges of this chain, for asking it many questions.

Chamfer(double)

Chamfers every corner that has room for it, cutting the same distance along both edges.

Chamfer(double, Tolerance)

Chamfers every corner that has room for it, cutting the same distance along both edges, within a tolerance.

Chamfer(double, double)

Chamfers every corner that has room for it.

Chamfer(double, double, Tolerance)

Chamfers every corner that has room for it, within a tolerance.

Clone()

Creates a copy of this polyline holding its own vertex array.

CollidesWith(GeoArc2)

Determines whether this polyline touches or overlaps an arc.

CollidesWith(GeoArc2, Tolerance)

Determines whether this polyline touches or overlaps an arc, within a tolerance.

CollidesWith(GeoCircle2)

Checks whether this polyline collides with a circle using default tolerance.

CollidesWith(GeoCircle2, Tolerance)

Checks whether this polyline collides with a circle within tolerance.

CollidesWith(GeoEdge2)

Checks whether this polyline touches an edge.

CollidesWith(GeoEdge2, Tolerance)

Checks whether this polyline touches an edge, within a tolerance.

CollidesWith(GeoFace2)

Checks whether this polyline reaches the material of a face, using the default tolerance.

CollidesWith(GeoFace2, Tolerance)

Checks whether this polyline reaches the material of a face, within a tolerance.

CollidesWith(GeoLine2)

Checks whether this polyline collides with a line segment using default tolerance.

CollidesWith(GeoLine2, Tolerance)

Checks whether this polyline collides with a line segment within tolerance.

CollidesWith(GeoPolygon2)

Checks whether this polyline collides with a polygon using default tolerance.

CollidesWith(GeoPolygon2, Tolerance)

Checks whether this polyline collides with a polygon within tolerance.

CollidesWith(GeoPolygonArc2)

Determines whether this polyline touches or overlaps a curved loop.

CollidesWith(GeoPolygonArc2, Tolerance)

Determines whether this polyline touches or overlaps a curved loop, within a tolerance.

CollidesWith(GeoPolyline2)

Checks whether this polyline collides with another polyline using default tolerance.

CollidesWith(GeoPolyline2, Tolerance)

Checks whether this polyline collides with another polyline within tolerance.

CollidesWith(GeoPolylineArc2)

Determines whether this polyline touches or overlaps a curved chain.

CollidesWith(GeoPolylineArc2, Tolerance)

Determines whether this polyline touches or overlaps a curved chain, within a tolerance.

CollidesWith(GeoRectangle2)

Checks whether this polyline collides with a rectangle using default tolerance.

CollidesWith(GeoRectangle2, Tolerance)

Checks whether this polyline collides with a rectangle within tolerance.

CollidesWith(GeoTriangle2)

Checks whether this polyline touches a triangle, using the default tolerance.

CollidesWith(GeoTriangle2, Tolerance)

Checks whether this polyline touches a triangle, within a tolerance.

DistanceTo(GeoArc2)

Calculates the shortest distance from this polyline to an arc.

DistanceTo(GeoArc2, Tolerance)

Calculates the shortest distance from this polyline to an arc, within a tolerance.

DistanceTo(GeoCircle2)

Calculates the shortest distance from this polyline to a circle.

DistanceTo(GeoEdge2)

Gets the distance from this polyline to an edge.

DistanceTo(GeoLine2)

Calculates the shortest distance from this polyline to a line segment.

DistanceTo(GeoPoint2)

Calculates the shortest Euclidean distance from this polyline to a point.

DistanceTo(GeoPolygon2)

Calculates the shortest distance from this polyline to a polygon.

DistanceTo(GeoPolygonArc2)

Calculates the shortest distance from this polyline to a curved loop.

DistanceTo(GeoPolygonArc2, Tolerance)

Calculates the shortest distance from this polyline to a curved loop, within a tolerance.

DistanceTo(GeoPolyline2)

Calculates the shortest distance between two polylines.

DistanceTo(GeoPolylineArc2)

Calculates the shortest distance from this polyline to a curved chain.

DistanceTo(GeoPolylineArc2, Tolerance)

Calculates the shortest distance from this polyline to a curved chain, within a tolerance.

DistanceTo(GeoRectangle2)

Calculates the shortest distance from this polyline to a rectangle.

DistanceTo(GeoTriangle2)

Gets the distance from this polyline to a triangle.

Equals(GeoPolyline2)

Indicates whether the current polyline is equal to another polyline.

Equals(object)

Indicates whether this instance and a specified object are equal.

Extend(double, LineEnd)

Lengthens the chain along its end leg, straight on.

Extend(double, LineEnd, Tolerance)

Lengthens the chain along its end leg, within a tolerance.

ExtendToLength(double, LineEnd)

Lengthens the chain along its end leg until the whole chain is a given length.

ExtendToLength(double, LineEnd, Tolerance)

Lengthens the chain along its end leg until the whole chain is a given length, within a tolerance.

Fillet(IReadOnlyList<double>)

Rounds the corners of the chain, one radius each.

Fillet(IReadOnlyList<double>, Tolerance)

Rounds the corners of the chain, one radius each, within a tolerance.

Fillet(double)

Rounds every corner of the chain by the same radius.

Fillet(double, Tolerance)

Rounds every corner of the chain by the same radius, within a tolerance.

GetClosestEdge(GeoCircle2)

Gets the edge of this polyline nearest a circle.

GetClosestEdge(GeoLine2)

Gets the edge of this polyline nearest a segment.

GetClosestEdge(GeoPoint2)

Gets the edge of this polyline nearest a point.

GetClosestPointOnBoundary(GeoPoint2)

Gets the closest point on the path of this polyline to a target point.

GetDistanceAtParameter(double)

Gets the arc length from the first vertex of this polyline to a normalized parameter.

GetDistanceAtPoint(GeoPoint2)

Gets the arc length from the first vertex of this polyline to the point on it closest to the supplied point.

GetEdgeAt(int)

Gets the line segment edge at a given index.

GetEdges()

Enumerates all line segment edges of the polyline.

GetHashCode()

Returns the hash code for this instance.

GetIntersections(GeoArc2)

Gets the points where this polyline meets an arc.

GetIntersections(GeoArc2, Tolerance)

Gets the points where this polyline meets an arc, within a tolerance.

GetIntersections(GeoCircle2)

Gets all intersection points with a circle using default tolerance.

GetIntersections(GeoCircle2, Tolerance)

Gets all intersection points with a circle within tolerance.

GetIntersections(GeoEdge2)

Gets every point where this polyline crosses an edge.

GetIntersections(GeoEdge2, Tolerance)

Gets every point where this polyline crosses an edge, within a tolerance.

GetIntersections(GeoFace2)

Gets every point where this polyline crosses the boundary of a face, using the default tolerance.

GetIntersections(GeoFace2, Tolerance)

Gets every point where this polyline crosses the boundary of a face, within a tolerance.

GetIntersections(GeoLine2)

Gets all intersection points with a line segment using default tolerance.

GetIntersections(GeoLine2, Tolerance)

Gets all intersection points with a line segment within tolerance.

GetIntersections(GeoPolygon2)

Gets all intersection points with a polygon using default tolerance.

GetIntersections(GeoPolygon2, Tolerance)

Gets all intersection points with a polygon within tolerance.

GetIntersections(GeoPolygonArc2)

Gets the points where this polyline meets a curved loop.

GetIntersections(GeoPolygonArc2, Tolerance)

Gets the points where this polyline meets a curved loop, within a tolerance.

GetIntersections(GeoPolyline2)

Gets all intersection points with another polyline using default tolerance.

GetIntersections(GeoPolyline2, Tolerance)

Gets all intersection points with another polyline within tolerance.

GetIntersections(GeoPolylineArc2)

Gets the points where this polyline meets a curved chain.

GetIntersections(GeoPolylineArc2, Tolerance)

Gets the points where this polyline meets a curved chain, within a tolerance.

GetIntersections(GeoRectangle2)

Gets all intersection points with a rectangle using default tolerance.

GetIntersections(GeoRectangle2, Tolerance)

Gets all intersection points with a rectangle within tolerance.

GetIntersections(GeoTriangle2)

Gets every point where this polyline meets the edges of a triangle, using the default tolerance.

GetIntersections(GeoTriangle2, Tolerance)

Gets every point where this polyline meets the edges of a triangle, within a tolerance.

GetParameterAtDistance(double)

Gets the normalized parameter at an arc length measured from the first vertex of this polyline.

GetParameterAtPoint(GeoPoint2)

Gets the normalized parameter of the point on this polyline closest to the supplied point.

GetPointAtDistance(double)

Gets the point at an arc length measured from the first vertex of this polyline.

GetPointAtParameter(double)

Gets the point at a normalized parameter along this polyline, where 0 is the first vertex and 1 is the end. Values outside [0, 1] are clamped to the endpoints.

GetShortestLineTo(GeoArc2)

Gets the shortest segment joining this polyline to an arc.

GetShortestLineTo(GeoArc2, Tolerance)

Gets the shortest segment joining this polyline to an arc, within a tolerance.

GetShortestLineTo(GeoCircle2)

Finds the shortest line segment connecting a point on this polyline to a point on the circumference of a circle using default tolerance.

GetShortestLineTo(GeoCircle2, Tolerance)

Finds the shortest line segment connecting a point on this polyline to a point on the circumference of a circle within tolerance.

GetShortestLineTo(GeoEdge2)

Gets the shortest segment leaving this polyline and landing on an edge.

GetShortestLineTo(GeoEdge2, Tolerance)

Gets the shortest segment leaving this polyline and landing on an edge, within a tolerance.

GetShortestLineTo(GeoFace2)

Gets the shortest segment leaving this polyline and landing on the boundary of a face, using the default tolerance.

GetShortestLineTo(GeoFace2, Tolerance)

Gets the shortest segment leaving this polyline and landing on the boundary of a face, within a tolerance.

GetShortestLineTo(GeoLine2)

Finds the shortest line segment connecting a point on this polyline to a point on a line segment using default tolerance.

GetShortestLineTo(GeoLine2, Tolerance)

Finds the shortest line segment connecting a point on this polyline to a point on a line segment within tolerance.

GetShortestLineTo(GeoPolygon2)

Finds the shortest line segment connecting a point on this polyline to a point on the boundary of a polygon using default tolerance.

GetShortestLineTo(GeoPolygon2, Tolerance)

Finds the shortest line segment connecting a point on this polyline to a point on the boundary of a polygon within tolerance.

GetShortestLineTo(GeoPolygonArc2)

Gets the shortest segment joining this polyline to a curved loop.

GetShortestLineTo(GeoPolygonArc2, Tolerance)

Gets the shortest segment joining this polyline to a curved loop, within a tolerance.

GetShortestLineTo(GeoPolyline2)

Finds the shortest line segment connecting a point on this polyline to a point on another polyline using default tolerance.

GetShortestLineTo(GeoPolyline2, Tolerance)

Finds the shortest line segment connecting a point on this polyline to a point on another polyline within tolerance.

GetShortestLineTo(GeoPolylineArc2)

Gets the shortest segment joining this polyline to a curved chain.

GetShortestLineTo(GeoPolylineArc2, Tolerance)

Gets the shortest segment joining this polyline to a curved chain, within a tolerance.

GetShortestLineTo(GeoRectangle2)

Finds the shortest line segment connecting a point on this polyline to a point on the boundary of a rectangle using default tolerance.

GetShortestLineTo(GeoRectangle2, Tolerance)

Finds the shortest line segment connecting a point on this polyline to a point on the boundary of a rectangle within tolerance.

GetShortestLineTo(GeoTriangle2)

Gets the shortest segment leaving this polyline and landing on a triangle, using the default tolerance.

GetShortestLineTo(GeoTriangle2, Tolerance)

Gets the shortest segment leaving this polyline and landing on a triangle, within a tolerance.

IsEqualTo(GeoPolyline2)

Determines whether another chain runs through the same points, within the default tolerance.

IsEqualTo(GeoPolyline2, Tolerance)

Determines whether another chain runs through the same points, within a tolerance.

IsPointOn(GeoPoint2)

Checks whether a point lies on this polyline using default tolerance.

IsPointOn(GeoPoint2, Tolerance)

Checks whether a point lies on this polyline within tolerance.

Locate(GeoPoint2)

Classifies the location of a point relative to this polyline (Inside, OutSide, or OnSide) using default tolerance.

Locate(GeoPoint2, Tolerance)

Classifies the location of a point relative to this polyline (Inside, OutSide, or OnSide) within tolerance.

Offset(double)

Gets the curve parallel to this polyline at a distance to its left, with sharp corners, using default tolerance. A negative distance goes to the right. See Offset(GeoPolyline2, double, OffsetOptions, Tolerance).

Offset(double, OffsetJoin)

Gets the curve parallel to this polyline at a distance to its left, with the given corners, using default tolerance. A negative distance goes to the right.

Offset(double, OffsetJoin, Tolerance)

Gets the curve parallel to this polyline at a distance to its left, with the given corners, within tolerance. A negative distance goes to the right.

Offset(double, OffsetOptions)

Gets the curve parallel to this polyline at a distance to its left, as the options say, using default tolerance. A negative distance goes to the right.

Offset(double, OffsetOptions, Tolerance)

Gets the curve parallel to this polyline at a distance to its left, as the options say, within tolerance. A negative distance goes to the right.

Offset(double, Tolerance)

Gets the curve parallel to this polyline at a distance to its left, with sharp corners, within tolerance. A negative distance goes to the right.

Reverse()

Reverses the direction of the polyline.

RotateBy(double, GeoPoint2)

Rotates the polyline around a center point by an angle in radians (counter-clockwise).

SplitAtDistances(IEnumerable<double>)

Splits this polyline at several arc lengths measured from its first vertex, using the default tolerance.

SplitAtDistances(IEnumerable<double>, Tolerance)

Splits this polyline at several arc lengths measured from its first vertex, within tolerance.

ToPolygon()

Converts this polyline into a solid 2D GeoPolygon2. The chain is closed by connecting the last vertex back to the first.

ToPolyline3(GeoCoordinateSystem3)

Puts this chain of the plane back into space, on the plane of a frame.

ToString()

Returns the string representation of the polyline.

TransformBy(GeoTransform2)

Applies a transformation to this chain.

Translate(GeoVector2)

Translates the polyline by a displacement vector.

TryChamferAt(int, double, double, out GeoPolyline2)

Chamfers one corner, using the default tolerance.

TryChamferAt(int, double, double, out GeoPolyline2, Tolerance)

Chamfers one corner, within a tolerance.

TryFilletAt(int, double, out GeoPolylineArc2)

Rounds one corner of the chain; the two ends of a chain are not corners.

TryFilletAt(int, double, out GeoPolylineArc2, Tolerance)

Rounds one corner of the chain within a tolerance; the two ends of a chain are not corners.

TryIntersectWith(GeoLine2, out GeoPoint2[])

Tries to find where this polyline crosses a segment, using the default tolerance.

TryIntersectWith(GeoLine2, out GeoPoint2[], Tolerance)

Tries to find where this polyline crosses a segment, within a tolerance.

TryIntersectWith(GeoPolygonArc2, out GeoPoint2[])

Tries to find where this polyline crosses a curved loop, using the default tolerance.

TryIntersectWith(GeoPolygonArc2, out GeoPoint2[], Tolerance)

Tries to find where this polyline crosses a curved loop, within a tolerance.

TryIntersectWith(GeoPolylineArc2, out GeoPoint2[])

Tries to find where this polyline crosses a curved chain, using the default tolerance.

TryIntersectWith(GeoPolylineArc2, out GeoPoint2[], Tolerance)

Tries to find where this polyline crosses a curved chain, within a tolerance.

TrySplitAtDistance(double, out GeoPolyline2, out GeoPolyline2)

Splits this polyline at an arc length measured from its first vertex, using the default tolerance.

TrySplitAtDistance(double, out GeoPolyline2, out GeoPolyline2, Tolerance)

Splits this polyline at an arc length measured from its first vertex, within tolerance.

TrySplitAtDistance(double, out GeoPolyline2[])

Splits the chain at an arc length from its start, the pieces as a list, using the default tolerance.

TrySplitAtDistance(double, out GeoPolyline2[], Tolerance)

Splits the chain at an arc length from its start, the pieces as a list, within a tolerance.

TrySplitBy(GeoLine2, out GeoPolyline2[])

Splits this polyline everywhere a cutting line segment crosses it, using the default tolerance.

TrySplitBy(GeoLine2, out GeoPolyline2[], Tolerance)

Splits this polyline everywhere a cutting line segment crosses it, within tolerance.

TrySplitBy(GeoLine2[], out GeoPolyline2[])

Splits this polyline everywhere a list of cutting line segments crosses it, using the default tolerance.

TrySplitBy(GeoLine2[], out GeoPolyline2[], Tolerance)

Splits this polyline everywhere a list of cutting line segments crosses it, within tolerance.

TrySplitBy(GeoPoint2, out GeoPolyline2, out GeoPolyline2)

Splits this polyline at a point lying on it, using the default tolerance.

TrySplitBy(GeoPoint2, out GeoPolyline2, out GeoPolyline2, Tolerance)

Splits this polyline at a point lying on it, within tolerance.

TrySplitBy(GeoPoint2[], out GeoPolyline2[])

Splits this polyline everywhere a list of points lies on it, using the default tolerance.

TrySplitBy(GeoPoint2[], out GeoPolyline2[], Tolerance)

Splits this polyline everywhere a list of points lies on it, within tolerance.

TrySplitBy(GeoPolygon2, out GeoPolyline2[], out GeoPolyline2[])

Splits this polyline against a polygon, sorting the sub-polylines by which side of its boundary they fall on, using the default tolerance.

TrySplitBy(GeoPolygon2, out GeoPolyline2[], out GeoPolyline2[], Tolerance)

Splits this polyline against a polygon, sorting the sub-polylines by which side of its boundary they fall on, within tolerance.

TrySplitBy(GeoPolygon2[], out GeoPolyline2[], out GeoPolyline2[])

Splits this polyline everywhere a list of polygon boundaries crosses it, separating the parts that fall inside the polygons from those that fall outside, using the default tolerance.

TrySplitBy(GeoPolygon2[], out GeoPolyline2[], out GeoPolyline2[], Tolerance)

Splits this polyline everywhere a list of polygon boundaries crosses it, separating the parts that fall inside the polygons from those that fall outside, within tolerance.

TrySplitBy(GeoPolyline2[], out GeoPolyline2[])

Splits this polyline everywhere a list of cutting polylines crosses it, using the default tolerance.

TrySplitBy(GeoPolyline2[], out GeoPolyline2[], Tolerance)

Splits this polyline everywhere a list of cutting polylines crosses it, within tolerance.

TryTrimTo(GeoPoint2, LineEnd, out GeoPolyline2)

Shortens the chain at one end back to a point on it.

TryTrimTo(GeoPoint2, LineEnd, out GeoPolyline2, Tolerance)

Shortens the chain at one end back to a point on it, within a tolerance.

Operators

operator +(GeoPolyline2, GeoVector2)

Translates a polyline by a vector.

operator ==(GeoPolyline2, GeoPolyline2)

Compares two GeoPolyline2 instances for equality.

operator !=(GeoPolyline2, GeoPolyline2)

Compares two GeoPolyline2 instances for inequality.

operator -(GeoPolyline2, GeoVector2)

Translates a polyline backwards by a vector.