Table of Contents

Class GeoFace3

Namespace
GeometryHelper.Geometry
Assembly
GeometryHelper.dll

Whether a face touches another shape.

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

Remarks

A shape that does not lie in this one's plane is refused rather than projected in, because projecting would report two plates a metre apart as overlapping and say nothing about it. SharesPlaneWith(GeoPlane3) asks the question beforehand. Everything comes back as GeoFace3, because joining two areas can leave a hole in the middle and only a face can hold one.

Constructors

GeoFace3(GeoPolygon3)

Initializes a face with no holes.

GeoFace3(GeoPolygon3, IEnumerable<GeoPolygon3>)

Initializes a face with holes.

GeoFace3(GeoPolygon3, IEnumerable<GeoPolygon3>, Tolerance)

Initializes a face with holes, within a tolerance.

Properties

Area

Gets the area of the face, with the area of every hole removed.

Boundary

Gets the outer boundary of the face.

Centroid

Gets the centroid of the face: the centroid of its boundary with its holes taken out, so a plate balances at this point whatever has been cut from it.

Holes

Gets the read-only list of holes cut out of the face, each wound the same way as the boundary.

Normal

Gets the unit normal of the face, taken from its boundary.

Methods

BuildIndex()

Builds a spatial index over the surface of this face, for asking it many questions.

BuildIndex(Tolerance)

Builds a spatial index over the surface of this face, within a tolerance.

Clone()

Creates a copy of this face.

CollidesWith(GeoArc3)

Checks whether this face touches an arc, using the default tolerance.

CollidesWith(GeoArc3, Tolerance)

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

CollidesWith(GeoCircle3)

Checks whether this face touches a circle, using the default tolerance.

CollidesWith(GeoCircle3, Tolerance)

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

CollidesWith(GeoEdge3)

Checks whether this face touches an edge.

CollidesWith(GeoEdge3, Tolerance)

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

CollidesWith(GeoLine3)

Checks whether this face touches a segment, using the default tolerance.

CollidesWith(GeoLine3, Tolerance)

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

CollidesWith(GeoPolygonArc3)

Checks whether this face touches a curved loop.

CollidesWith(GeoPolygonArc3, Tolerance)

Checks whether this face touches a curved loop, within a tolerance.

CollidesWith(GeoPolylineArc3)

Checks whether this face touches a curved chain.

CollidesWith(GeoPolylineArc3, Tolerance)

Checks whether this face touches a curved chain, within a tolerance.

CollidesWith(GeoRay3)

Checks whether a ray runs into this face, using the default tolerance.

CollidesWith(GeoRay3, Tolerance)

Checks whether a ray runs into this face, within a tolerance.

CollidesWith(GeoSolid3)

Checks whether this face touches a solid, using the default tolerance.

CollidesWith(GeoSolid3, Tolerance)

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

Contains(GeoPoint3)

Checks whether this face holds a point, using the default tolerance.

Contains(GeoPoint3, Tolerance)

Checks whether this face holds a point, within a tolerance.

DistanceTo(GeoPoint3)

Calculates the shortest distance from this face to a point.

DistanceTo(GeoPoint3, Tolerance)

Calculates the shortest distance from this face to a point, within a tolerance.

Equals(GeoFace3)

Determines whether another face has exactly the same boundary and holes, in the same order.

Equals(object)

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

Flip()

Gets the face with its orientation reversed, holes included.

FromLoops(IEnumerable<GeoPoint3>, IEnumerable<IEnumerable<GeoPoint3>>)

Makes the faces that cover a boundary less its holes, from loops of corners that need not lie flat, using the default tolerance.

FromLoops(IEnumerable<GeoPoint3>, IEnumerable<IEnumerable<GeoPoint3>>, Tolerance)

Makes the faces that cover a boundary less its holes, from loops of corners that need not lie flat, within a tolerance.

GetAabb()

Gets the axis-aligned bounding box enclosing this face.

GetClosestPointOnBoundary(GeoPoint3)

Gets the point of this face nearest a target point.

GetClosestPointOnBoundary(GeoPoint3, Tolerance)

Gets the point of this face nearest a target point, within a tolerance.

GetFrame()

Gets the frame of this face: the frame of its boundary, so its holes are laid out with it.

GetHashCode()

Returns the hash code for this instance.

GetIntersections(GeoArc3)

Gets every point where an arc crosses this face, using the default tolerance.

GetIntersections(GeoArc3, Tolerance)

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

GetIntersections(GeoCircle3)

Gets every point where a circle crosses this face, using the default tolerance.

GetIntersections(GeoCircle3, Tolerance)

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

GetIntersections(GeoEdge3)

Gets every point where an edge crosses this face.

GetIntersections(GeoEdge3, Tolerance)

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

GetIntersections(GeoLine3)

Gets every point where a segment crosses this face.

GetIntersections(GeoLine3, Tolerance)

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

GetIntersections(GeoPolygonArc3)

Gets every point where a curved loop crosses this face.

GetIntersections(GeoPolygonArc3, Tolerance)

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

GetIntersections(GeoPolylineArc3)

Gets every point where a curved chain crosses this face.

GetIntersections(GeoPolylineArc3, Tolerance)

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

GetPlane()

Gets the plane carrying the face, oriented along its normal.

Intersect(GeoFace3)

Keeps what this face and a face both cover.

Intersect(GeoFace3, Tolerance)

Keeps what this face and a face both cover, within a tolerance.

Intersect(GeoPolygon3)

Keeps what this face and a polygon both cover.

Intersect(GeoPolygon3, Tolerance)

Keeps what this face and a polygon both cover, within a tolerance.

IsEqualTo(GeoFace3)

Compares whether this face equals another using the default tolerance.

IsEqualTo(GeoFace3, Tolerance)

Compares whether this face equals another within a tolerance, ignoring the order the holes are listed in.

Locate(GeoPoint3)

Locates a point relative to this face, using the default tolerance.

Locate(GeoPoint3, Tolerance)

Locates a point relative to this face, within a tolerance.

Offset(double)

Grows this face within its own plane by a distance, or shrinks it when the distance is negative, with sharp corners, using the default tolerance. The holes shrink as the boundary grows. See Offset(GeoFace3, double, OffsetOptions, Tolerance).

Offset(double, OffsetJoin)

Grows this face within its own plane by a distance, or shrinks it when the distance is negative, with the given corners, using the default tolerance.

Offset(double, OffsetJoin, Tolerance)

Grows this face within its own plane by a distance, or shrinks it when the distance is negative, with the given corners, within a tolerance.

Offset(double, OffsetOptions)

Grows this face within its own plane by a distance, or shrinks it when the distance is negative, as the options say, using the default tolerance.

Offset(double, OffsetOptions, Tolerance)

Grows this face within its own plane by a distance, or shrinks it when the distance is negative, as the options say, within a tolerance.

Offset(double, Tolerance)

Grows this face within its own plane by a distance, or shrinks it when the distance is negative, with sharp corners, within a tolerance.

ProjectToFace2(GeoCoordinateSystem3)

Lays this face and its holes out in a frame, dropping each vertex's distance from the plane.

SharesPlaneWith(GeoPlane3)

Determines whether a plane is the plane this face lies in.

SharesPlaneWith(GeoPlane3, Tolerance)

Determines whether a plane is the plane this face lies in, within a tolerance.

Subtract(GeoFace3)

Takes a face out of this face.

Subtract(GeoFace3, Tolerance)

Takes a face out of this face, within a tolerance.

Subtract(GeoPolygon3)

Takes a polygon out of this face.

Subtract(GeoPolygon3, Tolerance)

Takes a polygon out of this face, within a tolerance.

ToString()

Returns a string that represents the current face.

TransformBy(GeoTransform3)

Applies a transformation to the boundary and every hole.

Translate(GeoVector3)

Moves the face by a vector.

Triangulate()

Breaks the outer boundary into triangles, ignoring the holes.

TriangulateSurface()

Breaks the face into triangles that each lie within its material, holes included, using the default tolerance.

TriangulateSurface(Tolerance)

Breaks the face into triangles that each lie within its material, holes included, within a tolerance.

TryIntersectWith(GeoArc3, out GeoPoint3[])

Tries to find where an arc crosses this face, using the default tolerance.

TryIntersectWith(GeoArc3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoCircle3, out GeoPoint3[])

Tries to find where a circle crosses this face, using the default tolerance.

TryIntersectWith(GeoCircle3, out GeoPoint3[], Tolerance)

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

TryIntersectWith(GeoLine3, out GeoPoint3)

Tries to find the point where a line segment crosses this face, using the default tolerance.

TryIntersectWith(GeoLine3, out GeoPoint3, Tolerance)

Tries to find the point where a line segment crosses this face, within a tolerance.

TryIntersectWith(GeoRay3, out GeoPoint3)

Tries to find the point where a ray crosses this face, using the default tolerance.

TryIntersectWith(GeoRay3, out GeoPoint3, Tolerance)

Tries to find the point where a ray crosses this face, within a tolerance.

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

Splits this face by a plane, using the default tolerance.

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

Splits this face by a plane, within a tolerance.

Union(GeoFace3)

Joins this face to a face.

Union(GeoFace3, Tolerance)

Joins this face to a face, within a tolerance.

Union(GeoPolygon3)

Joins this face to a polygon.

Union(GeoPolygon3, Tolerance)

Joins this face to a polygon, within a tolerance.

Xor(GeoFace3)

Keeps what this face and a face cover between them but do not share.

Xor(GeoFace3, Tolerance)

Keeps what this face and a face cover between them but do not share, within a tolerance.

Xor(GeoPolygon3)

Keeps what this face and a polygon cover between them but do not share.

Xor(GeoPolygon3, Tolerance)

Keeps what this face and a polygon cover between them but do not share, within a tolerance.