Table of Contents

Namespace GeometryHelper.Geometry

Classes

GeoFace2

Whether a face touches another shape.

GeoFace3

Whether a face touches another shape.

GeoObb3

Whether an oriented box touches another shape.

GeoPolygon2

Whether a polygon touches another shape.

GeoPolygon3

Whether a polygon touches another shape.

GeoPolygonArc2

Whether a curved loop touches another shape.

GeoPolygonArc3

Whether a curved loop touches another shape.

GeoPolyline2

Whether a polyline touches another shape.

GeoPolyline3

Whether a polyline touches another shape.

GeoPolylineArc2

Whether a curved chain touches another shape.

GeoPolylineArc3

Whether a curved chain touches another shape.

GeoSolid3

Whether a solid touches another shape.

GeoTransform2

Represents a 2D transformation as a 3x3 homogeneous matrix, covering translation, rotation, scaling and mirroring.

The matrix is stored row-major and applied on the left, so a.Multiply(b) means "apply b, then a", the usual convention for column vectors. Instances are immutable: every operation returns a new transformation rather than changing this one. It is the counterpart in the plane of GeoTransform3, and the two are built and read the same way.

GeoTransform3

Represents a 3D transformation as a 4x4 homogeneous matrix, covering translation, rotation, scaling and mirroring.

The matrix is stored row-major and applied on the left, so a.Multiply(b) means "apply b, then a", the usual convention for column vectors. Instances are immutable: every operation returns a new transformation rather than changing this one.

Structs

GeoAabb3

Whether an axis-aligned box touches another shape.

GeoArc2

Whether an arc touches another shape.

GeoArc3

Whether an arc touches another shape.

GeoCircle2

Whether a circle touches another shape.

GeoCircle3

Whether a circle touches another shape.

GeoCoordinateSystem2

A local coordinate system in the plane: an origin and two orthonormal axes, the counterpart of GeoCoordinateSystem3 in space.

It is the place a drawing sits rather than something done to a drawing. GeoTransform2 can say the same thing, and ToTransform() hands it over in that form, but a transformation may also scale, mirror or shear, and reading one backwards means inverting a matrix. A frame is rigid by construction, and reading it backwards is turning the axes round, which costs nothing and loses nothing.

GeoCoordinateSystem3

Represents a 3D local coordinate system: an origin and three orthonormal axes.

The axes are always orthonormal, whatever is passed in. The supplied X direction is kept, the Z axis is taken as X × Y, and the Y axis is then rebuilt as Z × X. That third step is what makes the system square: keeping the supplied Y unchanged would leave a skewed frame in which ToLocal(GeoPoint3) and ToGlobal(GeoPoint3) stop being inverses of each other, and every measurement taken through it would be quietly wrong.

GeoEdge2

Whether an edge touches another shape.

GeoEdge3

Whether an edge touches another shape.

GeoLine2

Whether a segment touches another shape.

GeoLine3

Whether a segment touches another shape.

GeoPlane3

Whether a plane touches another shape.

GeoPoint2

Whether a point touches another shape.

GeoPoint3

Whether a point touches another shape.

GeoRay3

Whether a ray touches another shape.

GeoRectangle2

Whether a rectangle touches another shape.

GeoTriangle3

Whether a triangle touches another shape.

GeoVector2

Represents a 2D vector with double precision coordinates.

GeoVector3

Represents a 3D vector with double precision components.