Class GeoPolylineArc3
- Namespace
- GeometryHelper.Geometry
- Assembly
- GeometryHelper.dll
Whether a curved chain touches another shape.
public sealed class GeoPolylineArc3 : IEquatable<GeoPolylineArc3>
- Inheritance
-
GeoPolylineArc3
- Implements
- Inherited Members
- Extension Methods
Remarks
The twin of GeoPolylineArc2, laid out the way a drawing holds one: vertices, with the bulge of the edge leaving each, and now the plane that bulge is read in as well. A chain like this is what a reinforcing bar is: straight runs with a tangent arc at every bend, and the bends need not all lie in one plane.
Coplanarity is not required, exactly as GeoPolyline3 requires none. A chain that does happen to be flat says so through IsPlanar(), and a closed loop of arcs that is flat belongs in GeoPolygonArc3 instead, which enforces it and can therefore answer about area and about what is inside.
What is exact here is what can be worked out on the curve itself: its length, walking along it, the point of it nearest another point, its box, moving it, turning it round, and flattening it. Measuring it against another shape in space is not, because the distance from an arc to anything but a point has no closed form once the two are not in one plane. For that, sample it with ToPolyline3(double), which puts the accuracy in the call.
Constructors
- GeoPolylineArc3(GeoPolyline3)
Initializes a chain from a straight one, with no bulges.
- GeoPolylineArc3(IEnumerable<GeoEdge3>)
Initializes a chain from edges that run end to end.
- GeoPolylineArc3(IEnumerable<GeoPoint3>)
Initializes a chain of straight pieces.
- GeoPolylineArc3(IEnumerable<GeoPoint3>, IEnumerable<double>, IEnumerable<GeoVector3>)
Initializes a chain whose pieces may be arcs.
- GeoPolylineArc3(IEnumerable<GeoPoint3>, IEnumerable<double>, IEnumerable<GeoVector3>, Tolerance)
Initializes a chain whose pieces may be arcs, within a tolerance.
Properties
- Bulges
Gets the bulge of each edge: the one at an index belongs to the edge leaving that vertex, so the last vertex of an open chain has none.
- EdgeCount
Gets the number of edges, which is one fewer than the number of vertices.
- EndPoint
Gets the point the chain ends at.
- this[int]
Gets the vertex at an index.
- Length
Gets the length of the chain, measured along its arcs rather than across their chords.
- MidPoint
Gets the point half way along the chain, measured along its arcs.
- Normals
Gets the normal each bulge is read about, laid out the way the bulges are; of no length at all where the edge is straight.
- StartPoint
Gets the point the chain starts from.
- VertexCount
Gets the number of vertices.
- Vertices
Gets the vertices of the chain, in order.
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 chain.
- CollidesWith(GeoAabb3)
Checks whether this curved chain touches an axis-aligned box.
- CollidesWith(GeoAabb3, Tolerance)
Checks whether this curved chain touches an axis-aligned box, within a tolerance.
- CollidesWith(GeoArc3)
Checks whether this curved chain touches an arc.
- CollidesWith(GeoArc3, Tolerance)
Checks whether this curved chain touches an arc, within a tolerance.
- CollidesWith(GeoCircle3)
Checks whether this curved chain touches a circle.
- CollidesWith(GeoCircle3, Tolerance)
Checks whether this curved chain touches a circle, within a tolerance.
- CollidesWith(GeoFace3)
Checks whether this curved chain touches a face.
- CollidesWith(GeoFace3, Tolerance)
Checks whether this curved 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)
Checks whether this curved chain touches an oriented box.
- CollidesWith(GeoObb3, Tolerance)
Checks whether this curved chain touches an oriented box, within a tolerance.
- CollidesWith(GeoPlane3)
Checks whether this curved chain touches a plane.
- CollidesWith(GeoPlane3, Tolerance)
Checks whether this curved chain touches a plane, within a tolerance.
- CollidesWith(GeoPolygon3)
Checks whether this curved chain touches a polygon.
- CollidesWith(GeoPolygon3, Tolerance)
Checks whether this curved 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 a straight chain.
- CollidesWith(GeoPolyline3, Tolerance)
Determines whether this chain touches a 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)
Checks whether this curved chain touches a solid.
- CollidesWith(GeoSolid3, Tolerance)
Checks whether this curved chain touches a solid, within a tolerance.
- CollidesWith(GeoTriangle3)
Checks whether this curved chain touches a triangle.
- CollidesWith(GeoTriangle3, Tolerance)
Checks whether this curved chain touches a triangle, within a tolerance.
- DistanceTo(GeoPoint3)
Gets the distance from the chain to a point.
- DistanceTo(GeoPoint3, Tolerance)
Gets the distance from the chain to a point, within a tolerance.
- Equals(GeoPolylineArc3)
Indicates whether the current chain holds the same vertices, bulges and planes as another.
- Equals(object)
Indicates whether this instance and a specified object are equal.
- Extend(double, LineEnd)
Lengthens the chain along its end leg, round if that leg curves, keeping its radius.
- 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.
- Flatten()
Gets the chain with its arcs thrown away, leaving the chords.
- GetAabb()
Gets the smallest axis-aligned box holding the chain.
- GetBulgeAt(int)
Gets the bulge of the edge leaving a vertex.
- GetClosestPointOnBoundary(GeoPoint3)
Gets the point of the chain nearest another point.
- GetClosestPointOnBoundary(GeoPoint3, Tolerance)
Gets the point of the chain nearest another point, within a tolerance.
- GetDistanceAtParameter(double)
Gets the distance along the chain at a given parameter.
- GetDistanceAtPoint(GeoPoint3)
Gets the distance along the chain to the point on it nearest another point.
- GetDistanceAtPoint(GeoPoint3, Tolerance)
Gets the distance along the chain to the point on it nearest another point, within a tolerance.
- GetEdgeAt(int)
Gets the edge at an index.
- GetEdges()
Gets the edges of the chain, in order.
- GetHashCode()
Returns the hash code for this instance.
- GetIntersections(GeoAabb3)
Gets every point where this curved chain crosses an axis-aligned box.
- GetIntersections(GeoAabb3, Tolerance)
Gets every point where this curved chain crosses an axis-aligned box, within a tolerance.
- GetIntersections(GeoArc3)
Gets every point where this curved chain crosses an arc.
- GetIntersections(GeoArc3, Tolerance)
Gets every point where this curved chain crosses an arc, within a tolerance.
- GetIntersections(GeoCircle3)
Gets every point where this curved chain crosses a circle.
- GetIntersections(GeoCircle3, Tolerance)
Gets every point where this curved chain crosses a circle, within a tolerance.
- GetIntersections(GeoFace3)
Gets every point where this curved chain crosses a face.
- GetIntersections(GeoFace3, Tolerance)
Gets every point where this curved 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 curved chain crosses an oriented box.
- GetIntersections(GeoObb3, Tolerance)
Gets every point where this curved chain crosses an oriented box, within a tolerance.
- GetIntersections(GeoPlane3)
Gets every point where this curved chain crosses a plane.
- GetIntersections(GeoPlane3, Tolerance)
Gets every point where this curved chain crosses a plane, within a tolerance.
- GetIntersections(GeoPolygon3)
Gets every point where this curved chain crosses a polygon.
- GetIntersections(GeoPolygon3, Tolerance)
Gets every point where this curved 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 a straight chain.
- GetIntersections(GeoPolyline3, Tolerance)
Gets every point where this chain crosses a 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 curved chain crosses a solid.
- GetIntersections(GeoSolid3, Tolerance)
Gets every point where this curved chain crosses a solid, within a tolerance.
- GetIntersections(GeoTriangle3)
Gets every point where this curved chain crosses a triangle.
- GetIntersections(GeoTriangle3, Tolerance)
Gets every point where this curved chain crosses a triangle, within a tolerance.
- GetNormalAt(int)
Gets the plane the bulge leaving a vertex is read about.
- GetParameterAtDistance(double)
Gets the parameter at a given distance along the chain.
- GetParameterAtPoint(GeoPoint3)
Gets the parameter of the point on the chain nearest another point.
- GetParameterAtPoint(GeoPoint3, Tolerance)
Gets the parameter of the point on the chain nearest another point, within a tolerance.
- GetPointAtDistance(double)
Gets the point a given distance along the chain, walked along its arcs.
- GetPointAtParameter(double)
Gets the point a given way along the chain, from nought at the start to one at the end.
- IsEqualTo(GeoPolylineArc3)
Determines whether this chain draws the same curve as another.
- IsEqualTo(GeoPolylineArc3, Tolerance)
Determines whether this chain draws the same curve as another, within a tolerance.
- IsPlanar()
Determines whether the whole chain, arcs and all, lies in one plane.
- IsPlanar(Tolerance)
Determines whether the whole chain, arcs and all, lies in one plane, within a tolerance.
- IsPointOn(GeoPoint3)
Determines whether a point lies on the chain.
- IsPointOn(GeoPoint3, Tolerance)
Determines whether a point lies on the chain, within a tolerance.
- Locate(GeoPoint3)
Says where a point sits relative to the chain; a curve never answers Inside.
- Locate(GeoPoint3, Tolerance)
Says where a point sits relative to the chain, within a tolerance.
- OffsetInPlane(double, GeoVector3)
Gets the curve parallel to this chain at a distance to its left within its plane.
- OffsetInPlane(double, GeoVector3, OffsetJoin)
Gets the curve parallel to this chain at a distance to its left within its plane, with the given shape of corner.
- OffsetInPlane(double, GeoVector3, OffsetJoin, Tolerance)
Gets the curve parallel to this chain at a distance to its left within its plane, with the given shape of corner, within a tolerance.
- OffsetInPlane(double, GeoVector3, OffsetOptions)
Gets the curve parallel to this chain at a distance to its left within its plane, as the options say.
- OffsetInPlane(double, GeoVector3, OffsetOptions, Tolerance)
Gets the curve parallel to this chain at a distance to its left within its plane, as the options say, within a tolerance. A negative distance goes to the right.
- OffsetInPlane(double, GeoVector3, Tolerance)
Gets the curve parallel to this chain at a distance to its left within its plane, within a tolerance.
- Reverse()
Gets the chain walked the other way, drawing the same curve.
- SplitAtDistances(IEnumerable<double>)
Cuts the chain at a set of distances measured along it, the pieces handed back as the other chains hand theirs, using the default tolerance.
- SplitAtDistances(IEnumerable<double>, out GeoPolylineArc3[])
Cuts the chain at a set of distances measured along it.
- SplitAtDistances(IEnumerable<double>, out GeoPolylineArc3[], Tolerance)
Cuts the chain at a set of distances measured along it, within a tolerance.
- SplitAtDistances(IEnumerable<double>, Tolerance)
Cuts the chain at a set of distances measured along it, the pieces handed back as the other chains hand theirs, within a tolerance.
- ToPolyline3(double)
Gets the chain as a straight one following its arcs to a given accuracy.
- ToString()
Returns a string describing the chain.
- TransformBy(GeoTransform3)
Applies a transformation to the chain.
- Translate(GeoVector3)
Moves the chain by a vector.
- TryChamferAt(int, double, double, out GeoPolylineArc3)
Cuts one corner of the chain back; the two ends of a chain are not corners.
- TryChamferAt(int, double, double, out GeoPolylineArc3, 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)
Gets the plane the whole chain lies in, when it lies in one.
- TryGetPlane(out GeoPlane3, Tolerance)
Gets the plane the whole chain lies in, when it lies in one, 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(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 a straight chain.
- TryIntersectWith(GeoPolyline3, out GeoPoint3[], Tolerance)
Tries to find where this chain crosses a 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.
- TrySplitAtDistance(double, out GeoPolylineArc3, out GeoPolylineArc3)
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 GeoPolylineArc3, out GeoPolylineArc3, 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 GeoPolylineArc3[])
Cuts the chain at a distance measured along it.
- TrySplitAtDistance(double, out GeoPolylineArc3[], Tolerance)
Cuts the chain at a distance measured along it, within a tolerance.
- TrySplitBy(GeoAabb3, out GeoPolylineArc3[], out GeoPolylineArc3[])
Cuts the chain where it crosses a square box, telling what is in from what is out.
- TrySplitBy(GeoAabb3, out GeoPolylineArc3[], out GeoPolylineArc3[], Tolerance)
Cuts the chain where it crosses a square box, telling what is in from what is out, within a tolerance.
- TrySplitBy(GeoAabb3[], out GeoPolylineArc3[], out GeoPolylineArc3[])
Cuts the chain where it crosses several square boxes, telling what is in from what is out.
- TrySplitBy(GeoAabb3[], out GeoPolylineArc3[], out GeoPolylineArc3[], Tolerance)
Cuts the chain where it crosses several square boxes, telling what is in from what is out, within a tolerance.
- TrySplitBy(GeoFace3, out GeoPolylineArc3[])
Cuts the chain wherever it crosses a face.
- TrySplitBy(GeoFace3, out GeoPolylineArc3[], Tolerance)
Cuts the chain wherever it crosses a face, within a tolerance.
- TrySplitBy(GeoObb3, out GeoPolylineArc3[], out GeoPolylineArc3[])
Cuts the chain where it crosses a box, telling what is in from what is out.
- TrySplitBy(GeoObb3, out GeoPolylineArc3[], out GeoPolylineArc3[], Tolerance)
Cuts the chain where it crosses a box, telling what is in from what is out, within a tolerance.
- TrySplitBy(GeoObb3[], out GeoPolylineArc3[], out GeoPolylineArc3[])
Cuts the chain where it crosses several boxes, telling what is in from what is out.
- TrySplitBy(GeoObb3[], out GeoPolylineArc3[], out GeoPolylineArc3[], Tolerance)
Cuts the chain where it crosses several boxes, telling what is in from what is out, within a tolerance.
- TrySplitBy(GeoPlane3, out GeoPolylineArc3[])
Cuts the chain wherever it crosses a plane.
- TrySplitBy(GeoPlane3, out GeoPolylineArc3[], Tolerance)
Cuts the chain wherever it crosses a plane, within a tolerance.
- TrySplitBy(GeoPoint3, out GeoPolylineArc3[])
Cuts the chain at a point on it.
- TrySplitBy(GeoPoint3, out GeoPolylineArc3[], Tolerance)
Cuts the chain at a point on it, within a tolerance.
- TrySplitBy(GeoSolid3, out GeoPolylineArc3[], out GeoPolylineArc3[])
Cuts the chain where it crosses the surface of a solid, telling what is in from what is out.
- TrySplitBy(GeoSolid3, out GeoPolylineArc3[], out GeoPolylineArc3[], Tolerance)
Cuts the chain where it crosses the surface of a solid, telling what is in from what is out, within a tolerance.
- TrySplitBy(GeoSolid3[], out GeoPolylineArc3[], out GeoPolylineArc3[])
Cuts the chain where it crosses several bodies, telling what is in from what is out.
- TrySplitBy(GeoSolid3[], out GeoPolylineArc3[], out GeoPolylineArc3[], Tolerance)
Cuts the chain where it crosses several bodies, telling what is in from what is out, within a tolerance.
- TryTrimTo(GeoPoint3, LineEnd, out GeoPolylineArc3)
Shortens the chain at one end back to a point on it.
- TryTrimTo(GeoPoint3, LineEnd, out GeoPolylineArc3, Tolerance)
Shortens the chain at one end back to a point on it, within a tolerance.
Operators
- operator ==(GeoPolylineArc3, GeoPolylineArc3)
Determines whether two chains hold the same vertices, bulges and planes.
- operator !=(GeoPolylineArc3, GeoPolylineArc3)
Determines whether two chains differ.