Table of Contents

Struct GeoEdge3

Namespace
GeometryHelper.Geometry
Assembly
GeometryHelper.dll

Whether an edge touches another shape.

public readonly struct GeoEdge3 : IEquatable<GeoEdge3>
Implements
Inherited Members

Remarks

The twin of GeoEdge2, with the one thing space needs that the plane does not. A bulge is the tangent of a quarter of the swept angle, the number AutoCAD keeps against a vertex, and in the plane it is enough on its own. In space it is not: a chord and a bulge are satisfied by an arc in any of the infinitely many planes through that chord, so the plane is carried as well, as Normal.

A positive bulge sweeps counter-clockwise about Normal, which is what a positive bulge means in the plane too, and that bows the curve towards the chord crossed with the normal. So a chord running along X with a normal along Z bows towards minus Y, the same way FromBulge(GeoPoint2, GeoPoint2, double) puts it.

A bulge of nought is a straight segment and the normal is then ignored, which is why IsArc is worth asking before ToArc().

Constructors

GeoEdge3(GeoArc3)

Initializes an edge from an arc in space.

GeoEdge3(GeoPoint3, GeoPoint3)

Initializes a straight edge between two points.

GeoEdge3(GeoPoint3, GeoPoint3, double, GeoVector3)

Initializes an edge between two points, bulging by a given amount in a given plane.

GeoEdge3(GeoPoint3, GeoPoint3, double, GeoVector3, Tolerance)

Initializes an edge between two points, bulging by a given amount in a given plane, within a tolerance.

Properties

Bulge

Gets the bulge: the tangent of a quarter of the swept angle, nought for a straight segment.

EndPoint

Gets the point the edge ends at.

IsArc

Gets a value indicating whether the edge curves.

IsValid

Gets whether this is a shape a constructor could have made: both ends are valid points, the bulge a number, and a curved edge's normal of unit length.

Length

Gets the length of the edge, measured along the arc where it curves.

MidPoint

Gets the point half way along the edge: the middle of its segment or of its arc.

Normal

Gets the normal of the plane the arc bulges in, of no length at all for a straight segment.

StartPoint

Gets the point the edge starts from.

Methods

Clone()

Creates a copy of this edge.

CollidesWith(GeoAabb3)

Checks whether this edge touches an axis-aligned box.

CollidesWith(GeoAabb3, Tolerance)

Checks whether this edge touches an axis-aligned box, within a tolerance.

CollidesWith(GeoArc3)

Checks whether this edge touches an arc.

CollidesWith(GeoArc3, Tolerance)

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

CollidesWith(GeoCircle3)

Checks whether this edge touches a circle.

CollidesWith(GeoCircle3, Tolerance)

Checks whether this edge touches a circle, within a tolerance.

CollidesWith(GeoEdge3)

Determines whether this edge touches another edge.

CollidesWith(GeoEdge3, Tolerance)

Determines whether this edge touches another edge, within a tolerance.

CollidesWith(GeoFace3)

Checks whether this edge touches a face.

CollidesWith(GeoFace3, Tolerance)

Checks whether this edge touches a face, within a tolerance.

CollidesWith(GeoLine3)

Determines whether this edge touches a segment.

CollidesWith(GeoLine3, Tolerance)

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

CollidesWith(GeoObb3)

Checks whether this edge touches an oriented box.

CollidesWith(GeoObb3, Tolerance)

Checks whether this edge touches an oriented box, within a tolerance.

CollidesWith(GeoPlane3)

Checks whether this edge touches a plane.

CollidesWith(GeoPlane3, Tolerance)

Checks whether this edge touches a plane, within a tolerance.

CollidesWith(GeoPolygon3)

Checks whether this edge touches a polygon.

CollidesWith(GeoPolygon3, Tolerance)

Checks whether this edge touches a polygon, within a tolerance.

CollidesWith(GeoRay3)

Determines whether this edge touches a ray.

CollidesWith(GeoRay3, Tolerance)

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

CollidesWith(GeoSolid3)

Checks whether this edge touches a solid.

CollidesWith(GeoSolid3, Tolerance)

Checks whether this edge touches a solid, within a tolerance.

CollidesWith(GeoTriangle3)

Checks whether this edge touches a triangle.

CollidesWith(GeoTriangle3, Tolerance)

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

DistanceTo(GeoPoint3)

Gets the distance from the edge to a point.

DistanceTo(GeoPoint3, Tolerance)

Gets the distance from the edge to a point, within a tolerance.

Equals(GeoEdge3)

Indicates whether the current edge is equal to another edge.

Equals(object)

Indicates whether this instance and a specified object are equal.

Extend(double, LineEnd)

Lengthens the edge at one end, along itself.

Extend(double, LineEnd, Tolerance)

Lengthens the edge at one end, along itself, within a tolerance.

ExtendToLength(double, LineEnd)

Lengthens or shortens the edge at one end until it is a given length.

ExtendToLength(double, LineEnd, Tolerance)

Lengthens or shortens the edge at one end until it is a given length, within a tolerance.

GetAabb()

Gets the smallest axis-aligned box holding the edge.

GetChord()

Gets the straight segment between the two ends, whether or not the edge curves.

GetClosestPointOnBoundary(GeoPoint3)

Gets the point of the edge nearest another point.

GetClosestPointOnBoundary(GeoPoint3, Tolerance)

Gets the point of the edge nearest another point, within a tolerance.

GetHashCode()

Returns the hash code for this instance.

GetIntersections(GeoAabb3)

Gets every point where this edge crosses an axis-aligned box.

GetIntersections(GeoAabb3, Tolerance)

Gets every point where this edge crosses an axis-aligned box, within a tolerance.

GetIntersections(GeoArc3)

Gets every point where this edge crosses an arc.

GetIntersections(GeoArc3, Tolerance)

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

GetIntersections(GeoCircle3)

Gets every point where this edge crosses a circle.

GetIntersections(GeoCircle3, Tolerance)

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

GetIntersections(GeoEdge3)

Gets every point where this edge crosses another edge.

GetIntersections(GeoEdge3, Tolerance)

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

GetIntersections(GeoFace3)

Gets every point where this edge crosses a face.

GetIntersections(GeoFace3, Tolerance)

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

GetIntersections(GeoLine3)

Gets every point where this edge crosses a segment.

GetIntersections(GeoLine3, Tolerance)

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

GetIntersections(GeoObb3)

Gets every point where this edge crosses an oriented box.

GetIntersections(GeoObb3, Tolerance)

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

GetIntersections(GeoPlane3)

Gets every point where this edge crosses a plane.

GetIntersections(GeoPlane3, Tolerance)

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

GetIntersections(GeoPolygon3)

Gets every point where this edge crosses a polygon.

GetIntersections(GeoPolygon3, Tolerance)

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

GetIntersections(GeoRay3)

Gets every point where this edge crosses a ray.

GetIntersections(GeoRay3, Tolerance)

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

GetIntersections(GeoSolid3)

Gets every point where this edge crosses a solid.

GetIntersections(GeoSolid3, Tolerance)

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

GetIntersections(GeoTriangle3)

Gets every point where this edge crosses a triangle.

GetIntersections(GeoTriangle3, Tolerance)

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

GetParameterAtPoint(GeoPoint3)

Gets how far along the edge the point nearest another one sits, from nought to one.

GetParameterAtPoint(GeoPoint3, Tolerance)

Gets how far along the edge the point nearest another one sits, from nought to one, within a tolerance.

GetPlane()

Gets the plane the arc bulges in.

GetPointAtParameter(double)

Gets the point a given way along the edge, from nought at the start to one at the end.

IsEqualTo(GeoEdge3)

Determines whether this edge holds the same ends and the same bulge in the same plane as another.

IsEqualTo(GeoEdge3, Tolerance)

Determines whether this edge holds the same ends and the same bulge in the same plane as another, within a tolerance.

IsPointOn(GeoPoint3)

Determines whether a point lies on the edge.

IsPointOn(GeoPoint3, Tolerance)

Determines whether a point lies on the edge, within a tolerance.

Locate(GeoPoint3)

Says where a point sits relative to the edge; a curve never answers Inside.

Locate(GeoPoint3, Tolerance)

Says where a point sits relative to the edge, within a tolerance.

Reverse()

Gets the edge walked the other way, drawing the same curve.

ToArc()

Gets the edge as an arc in space.

ToLine()

Gets the edge as a straight segment.

ToString()

Returns a string describing the edge.

TransformBy(GeoTransform3)

Applies a transformation to the edge.

Translate(GeoVector3)

Moves the edge by a vector.

TryIntersectWith(GeoArc3, out GeoPoint3[])

Tries to find where this edge crosses an arc.

TryIntersectWith(GeoArc3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoCircle3, out GeoPoint3[])

Tries to find where this edge crosses a circle.

TryIntersectWith(GeoCircle3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoEdge3, out GeoPoint3[])

Tries to find where this edge crosses another edge.

TryIntersectWith(GeoEdge3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoLine3, out GeoPoint3[])

Tries to find where this edge crosses a segment.

TryIntersectWith(GeoLine3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoRay3, out GeoPoint3[])

Tries to find where this edge crosses a ray.

TryIntersectWith(GeoRay3, out GeoPoint3[], Tolerance)

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

TrySplitAtParameter(double, out GeoEdge3, out GeoEdge3)

Splits the edge at a point along it, when that point is neither of its ends.

TryTrimTo(GeoPoint3, LineEnd, out GeoEdge3)

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

TryTrimTo(GeoPoint3, LineEnd, out GeoEdge3, Tolerance)

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

Operators

operator ==(GeoEdge3, GeoEdge3)

Determines whether two edges are the same.

operator !=(GeoEdge3, GeoEdge3)

Determines whether two edges differ.