Table of Contents

Class GeoPolyline3

Namespace
GeometryHelper.Geometry
Assembly
GeometryHelper.dll

Whether a polyline touches another shape.

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

Constructors

GeoPolyline3(params GeoPoint3[])

Initializes a new polyline directly from vertex arguments.

GeoPolyline3(IEnumerable<GeoPoint3>)

Initializes a new polyline from a sequence of vertices.

Properties

EdgeCount

Gets the number of segments, one fewer than the number of vertices.

EndPoint

Gets the last vertex, where the chain ends.

this[int]

Gets the vertex at a given index.

Length

Gets the total length of the polyline.

MidPoint

Gets the point half way along the chain.

StartPoint

Gets the first vertex, where the chain starts.

VertexCount

Gets the number of vertices.

Vertices

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

Methods

Chamfer(double)

Cuts every corner of the chain back by the same distance.

Chamfer(double, Tolerance)

Cuts every corner of the chain back by the same distance, within a tolerance.

Chamfer(double, double)

Cuts every corner of the chain back, by one distance along the way in and another along the way out.

Chamfer(double, double, Tolerance)

Cuts every corner of the chain back, by one distance along the way in and another along the way out, within a tolerance.

Clone()

Creates a copy of this polyline.

CollidesWith(GeoAabb3)

Determines whether this chain touches a square box.

CollidesWith(GeoAabb3, Tolerance)

Determines whether this chain touches a square box, within a tolerance.

CollidesWith(GeoArc3)

Determines whether this chain touches an arc.

CollidesWith(GeoArc3, Tolerance)

Determines whether this chain touches an arc, within a tolerance.

CollidesWith(GeoCircle3)

Determines whether this chain touches a circle.

CollidesWith(GeoCircle3, Tolerance)

Determines whether this chain touches a circle, within a tolerance.

CollidesWith(GeoFace3)

Determines whether this chain touches a face.

CollidesWith(GeoFace3, Tolerance)

Determines whether this chain touches a face, within a tolerance.

CollidesWith(GeoLine3)

Determines whether this chain touches a segment.

CollidesWith(GeoLine3, Tolerance)

Determines whether this chain touches a segment, within a tolerance.

CollidesWith(GeoObb3)

Determines whether this chain touches a box.

CollidesWith(GeoObb3, Tolerance)

Determines whether this chain touches a box, within a tolerance.

CollidesWith(GeoPlane3)

Determines whether this chain touches a plane.

CollidesWith(GeoPlane3, Tolerance)

Determines whether this chain touches a plane, within a tolerance.

CollidesWith(GeoPolygon3)

Determines whether this chain touches a polygon.

CollidesWith(GeoPolygon3, Tolerance)

Determines whether this chain touches a polygon, within a tolerance.

CollidesWith(GeoPolygonArc3)

Determines whether this chain touches a curved loop.

CollidesWith(GeoPolygonArc3, Tolerance)

Determines whether this chain touches a curved loop, within a tolerance.

CollidesWith(GeoPolyline3)

Determines whether this chain touches another straight chain.

CollidesWith(GeoPolyline3, Tolerance)

Determines whether this chain touches another straight chain, within a tolerance.

CollidesWith(GeoPolylineArc3)

Determines whether this chain touches a curved chain.

CollidesWith(GeoPolylineArc3, Tolerance)

Determines whether this chain touches a curved chain, within a tolerance.

CollidesWith(GeoRay3)

Determines whether this chain touches a ray.

CollidesWith(GeoRay3, Tolerance)

Determines whether this chain touches a ray, within a tolerance.

CollidesWith(GeoSolid3)

Determines whether this chain touches or overlaps a solid.

CollidesWith(GeoSolid3, Tolerance)

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

CollidesWith(GeoTriangle3)

Determines whether this chain touches a triangle.

CollidesWith(GeoTriangle3, Tolerance)

Determines whether this chain touches a triangle, within a tolerance.

DistanceTo(GeoAabb3)

Calculates the shortest distance from this chain to an axis-aligned box.

DistanceTo(GeoAabb3, Tolerance)

Calculates the shortest distance from this chain to an axis-aligned box, within a tolerance.

DistanceTo(GeoLine3)

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

DistanceTo(GeoLine3, Tolerance)

Calculates the shortest distance from this chain to a line segment, within a tolerance.

DistanceTo(GeoObb3)

Calculates the shortest distance from this chain to an oriented box.

DistanceTo(GeoObb3, Tolerance)

Calculates the shortest distance from this chain to an oriented box, within a tolerance.

DistanceTo(GeoPlane3)

Calculates the shortest distance from this chain to a plane.

DistanceTo(GeoPlane3, Tolerance)

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

DistanceTo(GeoPoint3)

Calculates the shortest distance from this polyline to a point.

DistanceTo(GeoPolygon3)

Calculates the shortest distance from this chain to a polygon.

DistanceTo(GeoPolygon3, Tolerance)

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

DistanceTo(GeoPolyline3)

Calculates the shortest distance from this chain to another chain.

DistanceTo(GeoPolyline3, Tolerance)

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

DistanceTo(GeoSolid3)

Calculates the shortest distance from this chain to a solid.

DistanceTo(GeoSolid3, Tolerance)

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

DistanceTo(GeoTriangle3)

Calculates the shortest distance from this chain to a triangle.

DistanceTo(GeoTriangle3, Tolerance)

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

Equals(GeoPolyline3)

Determines whether another polyline has exactly the same vertices, in the same order.

Equals(object)

Determines whether the specified object is equal to the current polyline.

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 this chain, each by its own radius.

Fillet(IReadOnlyList<double>, Tolerance)

Rounds the corners of this chain, each by its own radius, within a tolerance.

Fillet(double)

Rounds every corner of this chain by the same radius.

Fillet(double, Tolerance)

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

GetAabb()

Gets the axis-aligned bounding box enclosing this polyline.

GetClosestPointOnBoundary(GeoPoint3)

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

GetDistanceAtParameter(double)

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

GetDistanceAtPoint(GeoPoint3)

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

GetEdgeAt(int)

Gets the segment at a given index.

GetEdges()

Gets every segment of the polyline, in order.

GetHashCode()

Returns the hash code for this instance.

GetIntersections(GeoAabb3)

Gets every point where this chain crosses a square box.

GetIntersections(GeoAabb3, Tolerance)

Gets every point where this chain crosses a square box, within a tolerance.

GetIntersections(GeoArc3)

Gets every point where this chain crosses an arc.

GetIntersections(GeoArc3, Tolerance)

Gets every point where this chain crosses an arc, within a tolerance.

GetIntersections(GeoCircle3)

Gets every point where this chain crosses a circle.

GetIntersections(GeoCircle3, Tolerance)

Gets every point where this chain crosses a circle, within a tolerance.

GetIntersections(GeoFace3)

Gets every point where this chain crosses a face.

GetIntersections(GeoFace3, Tolerance)

Gets every point where this chain crosses a face, within a tolerance.

GetIntersections(GeoLine3)

Gets every point where this chain crosses a segment.

GetIntersections(GeoLine3, Tolerance)

Gets every point where this chain crosses a segment, within a tolerance.

GetIntersections(GeoObb3)

Gets every point where this chain crosses a box.

GetIntersections(GeoObb3, Tolerance)

Gets every point where this chain crosses a box, within a tolerance.

GetIntersections(GeoPlane3)

Gets every point where this chain crosses a plane.

GetIntersections(GeoPlane3, Tolerance)

Gets every point where this chain crosses a plane, within a tolerance.

GetIntersections(GeoPolygon3)

Gets every point where this chain crosses a polygon.

GetIntersections(GeoPolygon3, Tolerance)

Gets every point where this chain crosses a polygon, within a tolerance.

GetIntersections(GeoPolygonArc3)

Gets every point where this chain crosses a curved loop.

GetIntersections(GeoPolygonArc3, Tolerance)

Gets every point where this chain crosses a curved loop, within a tolerance.

GetIntersections(GeoPolyline3)

Gets every point where this chain crosses another straight chain.

GetIntersections(GeoPolyline3, Tolerance)

Gets every point where this chain crosses another straight chain, within a tolerance.

GetIntersections(GeoPolylineArc3)

Gets every point where this chain crosses a curved chain.

GetIntersections(GeoPolylineArc3, Tolerance)

Gets every point where this chain crosses a curved chain, within a tolerance.

GetIntersections(GeoRay3)

Gets every point where this chain crosses a ray.

GetIntersections(GeoRay3, Tolerance)

Gets every point where this chain crosses a ray, within a tolerance.

GetIntersections(GeoSolid3)

Gets every point where this chain crosses a body.

GetIntersections(GeoSolid3, Tolerance)

Gets every point where this chain crosses a body, within a tolerance.

GetIntersections(GeoTriangle3)

Gets every point where this chain crosses a triangle.

GetIntersections(GeoTriangle3, Tolerance)

Gets every point where this chain crosses a triangle, within a tolerance.

GetParameterAtDistance(double)

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

GetParameterAtPoint(GeoPoint3)

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 start of the polyline.

GetPointAtParameter(double)

Gets the point at a normalized parameter along the polyline. Values outside [0, 1] clamp to the ends, because an open chain has no single direction to extend along.

IsEqualTo(GeoPolyline3)

Compares whether this polyline equals another using the default tolerance.

IsEqualTo(GeoPolyline3, Tolerance)

Compares whether this polyline equals another within a tolerance, ignoring which way round the chain runs.

IsPlanar()

Checks whether every vertex lies on a common plane, using the default tolerance.

IsPlanar(Tolerance)

Checks whether every vertex lies on a common plane, within a tolerance.

IsPointOn(GeoPoint3)

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

IsPointOn(GeoPoint3, Tolerance)

Checks whether a point lies on this polyline, within a tolerance.

Locate(GeoPoint3)

Says where a point lies with respect to this chain.

Locate(GeoPoint3, Tolerance)

Says where a point lies with respect to this chain, within a tolerance.

OffsetInPlane(double, GeoVector3)

Gets the curve parallel to this flat polyline at a distance to its left within its plane, with sharp corners, using the default tolerance. See OffsetInPlane(GeoPolyline3, double, GeoVector3, OffsetOptions, Tolerance).

OffsetInPlane(double, GeoVector3, OffsetJoin)

Gets the curve parallel to this flat polyline at a distance to its left within its plane, with the given corners, using the default tolerance.

OffsetInPlane(double, GeoVector3, OffsetJoin, Tolerance)

Gets the curve parallel to this flat polyline at a distance to its left within its plane, with the given corners, within a tolerance.

OffsetInPlane(double, GeoVector3, OffsetOptions)

Gets the curve parallel to this flat polyline at a distance to its left within its plane, as the options say, using the default tolerance.

OffsetInPlane(double, GeoVector3, OffsetOptions, Tolerance)

Gets the curve parallel to this flat polyline at a distance to its left within its plane, as the options say, within a tolerance.

OffsetInPlane(double, GeoVector3, Tolerance)

Gets the curve parallel to this flat polyline at a distance to its left within its plane, with sharp corners, within a tolerance.

ProjectToPolyline2(GeoCoordinateSystem3)

Lays this chain out in a frame, dropping each vertex's distance from the plane of that frame.

Reverse()

Gets the polyline running the other way.

SplitAtDistances(IEnumerable<double>)

Splits this polyline at several arc lengths at once, using the default tolerance.

SplitAtDistances(IEnumerable<double>, Tolerance)

Splits this polyline at several arc lengths at once, within a tolerance.

ToPolygon()

Gets the polygon that closes this chain, joining its last vertex back to its first.

ToString()

Returns a string that represents the current polyline.

TransformBy(GeoTransform3)

Applies a transformation to every vertex.

Translate(GeoVector3)

Moves the chain by a vector.

TryChamferAt(int, double, double, out GeoPolyline3)

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

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

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

TryFilletAt(int, double, out GeoPolylineArc3)

Rounds one named corner of this chain.

TryFilletAt(int, double, out GeoPolylineArc3, Tolerance)

Rounds one named corner of this chain, within a tolerance.

TryGetPlane(out GeoPlane3)

Tries to get the plane every vertex lies on, using the default tolerance.

TryGetPlane(out GeoPlane3, Tolerance)

Tries to get the plane every vertex lies on, within a tolerance.

TryIntersectWith(GeoAabb3, out GeoPoint3[])

Tries to find where this chain crosses a square box.

TryIntersectWith(GeoAabb3, out GeoPoint3[], Tolerance)

Tries to find where this chain crosses a square box, within a tolerance.

TryIntersectWith(GeoArc3, out GeoPoint3[])

Tries to find where this chain crosses an arc.

TryIntersectWith(GeoArc3, out GeoPoint3[], Tolerance)

Tries to find where this chain crosses an arc, within a tolerance.

TryIntersectWith(GeoCircle3, out GeoPoint3[])

Tries to find where this chain crosses a circle.

TryIntersectWith(GeoCircle3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoFace3, out GeoPoint3[])

Tries to find where this chain crosses a face.

TryIntersectWith(GeoFace3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoLine3, out GeoPoint3[])

Tries to find where this chain crosses a segment.

TryIntersectWith(GeoLine3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoObb3, out GeoPoint3[])

Tries to find where this chain crosses a box.

TryIntersectWith(GeoObb3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoPlane3, out GeoPoint3[])

Tries to find where this chain crosses a plane.

TryIntersectWith(GeoPlane3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoPolygon3, out GeoPoint3[])

Tries to find where this chain crosses a polygon.

TryIntersectWith(GeoPolygon3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoPolygonArc3, out GeoPoint3[])

Tries to find where this chain crosses a curved loop.

TryIntersectWith(GeoPolygonArc3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoPolyline3, out GeoPoint3[])

Tries to find where this chain crosses another straight chain.

TryIntersectWith(GeoPolyline3, out GeoPoint3[], Tolerance)

Tries to find where this chain crosses another straight chain, within a tolerance.

TryIntersectWith(GeoPolylineArc3, out GeoPoint3[])

Tries to find where this chain crosses a curved chain.

TryIntersectWith(GeoPolylineArc3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoRay3, out GeoPoint3[])

Tries to find where this chain crosses a ray.

TryIntersectWith(GeoRay3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoSolid3, out GeoPoint3[])

Tries to find where this chain crosses a body.

TryIntersectWith(GeoSolid3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoTriangle3, out GeoPoint3[])

Tries to find where this chain crosses a triangle.

TryIntersectWith(GeoTriangle3, out GeoPoint3[], Tolerance)

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

TrySplitAtDistance(double, out GeoPolyline3, out GeoPolyline3)

Splits the chain at an arc length from its start into the piece before and the piece after, using the default tolerance.

TrySplitAtDistance(double, out GeoPolyline3, out GeoPolyline3, Tolerance)

Splits the chain at an arc length from its start into the piece before and the piece after, within a tolerance.

TrySplitAtDistance(double, out GeoPolyline3[])

Splits this polyline at an arc length from its start, using the default tolerance.

TrySplitAtDistance(double, out GeoPolyline3[], Tolerance)

Splits this polyline at an arc length from its start, within a tolerance.

TrySplitBy(GeoAabb3, out GeoPolyline3[], out GeoPolyline3[])

Splits this polyline by an axis-aligned box, using the default tolerance.

TrySplitBy(GeoAabb3, out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this polyline by an axis-aligned box, within a tolerance.

TrySplitBy(GeoAabb3[], out GeoPolyline3[], out GeoPolyline3[])

Splits this polyline by several axis-aligned boxes taken together as their union, using the default tolerance.

TrySplitBy(GeoAabb3[], out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this polyline by several axis-aligned boxes taken together as their union, within a tolerance.

TrySplitBy(GeoFace3, out GeoPolyline3[])

Splits this chain wherever it passes through a face, using the default tolerance.

TrySplitBy(GeoFace3, out GeoPolyline3[], Tolerance)

Splits this chain wherever it passes through a face, within a tolerance.

TrySplitBy(GeoObb3, out GeoPolyline3[], out GeoPolyline3[])

Splits this polyline by an oriented box, using the default tolerance.

TrySplitBy(GeoObb3, out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this polyline by an oriented box, within a tolerance.

TrySplitBy(GeoObb3[], out GeoPolyline3[], out GeoPolyline3[])

Splits this polyline by several oriented boxes taken together as their union, using the default tolerance.

TrySplitBy(GeoObb3[], out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this polyline by several oriented boxes taken together as their union, within a tolerance.

TrySplitBy(GeoPlane3, out GeoPolyline3[])

Splits this polyline wherever a plane crosses it, using the default tolerance.

TrySplitBy(GeoPlane3, out GeoPolyline3[], out GeoPolyline3[])

Splits this chain by a plane and sorts the pieces by side, using the default tolerance.

TrySplitBy(GeoPlane3, out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this chain by a plane and sorts the pieces by side, within a tolerance.

TrySplitBy(GeoPlane3, out GeoPolyline3[], Tolerance)

Splits this polyline wherever a plane crosses it, within a tolerance.

TrySplitBy(GeoPoint3, out GeoPolyline3[])

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

TrySplitBy(GeoPoint3, out GeoPolyline3[], Tolerance)

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

TrySplitBy(GeoPolygon3, out GeoPolyline3[])

Splits this chain wherever it passes through a polygon, using the default tolerance.

TrySplitBy(GeoPolygon3, out GeoPolyline3[], Tolerance)

Splits this chain wherever it passes through a polygon, within a tolerance.

TrySplitBy(GeoSolid3, out GeoPolyline3[], out GeoPolyline3[])

Splits this polyline by a solid, sorting the pieces into those inside it and those outside, using the default tolerance.

TrySplitBy(GeoSolid3, out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this polyline by a solid, within a tolerance.

TrySplitBy(GeoSolid3[], out GeoPolyline3[], out GeoPolyline3[])

Splits this polyline by several solids taken together as their union, using the default tolerance.

TrySplitBy(GeoSolid3[], out GeoPolyline3[], out GeoPolyline3[], Tolerance)

Splits this polyline by several solids taken together as their union, within a tolerance.

TryTrimTo(GeoPoint3, LineEnd, out GeoPolyline3)

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

TryTrimTo(GeoPoint3, LineEnd, out GeoPolyline3, Tolerance)

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