# CartesianGeometry

Points, Vectors, Planes, and Transformations for x,y,z geometry.

- Fundamental cartesian geometry objects:
- Point2d, Point3d -- points with x,y,z coordinates

- Vector2d, Vector3d -- vectors with x,y,z coordinates

- Matrix3d -- 3x3 matrix

- commonly used for pure rotations

- scale and skew entries are also allowed.

- Transform -- an origin and axes.

- Range1d, Range2d, Range3d -- subsets of 1d, 2d, and 3d space bounded by low and high values.

- Ray3d -- a ray defined by origin and direction vector

- Plane3dByOriginAndUnitNormal -- a plane defined by an origin and a single vector which is perpendicular to the plane

- plane3dByOriginAndVectors -- a plane defined by an origin and two vectors in the plane.

- Angles
- Angle -- a strongly typed angle object whose method names make it clear whether input and outputs are degrees or radians.

- AngleSweep -- an angular interval

- YawPitchAndRollAngles -- 3 angles that define a rotated coordinate system.

- Utility classes
- FrameBuilder -- construction of coordinate frames from mixed data sources.

- ClipPlane -- a single plane

- ConvexClipPlaneSet -- an array of planes bounding a convex volume

- ClipPlaneSet -- an array of ConvexClipPlaneSet, defining the union of their volumes

- Constant -- various numeric values exported as readonly constants

## Classes

Name | Description | |
---|---|---|

AlternatingCCTreeBuilder | Context structure for building an AlternatingConvexClipTreeNode from a polygon. | |

AlternatingCCTreeNode | An AlternatingConvexClipTreeNode is a node in a tree structure in which | |

AlternatingCCTreeNodeCurveClipper | ||

ClipPlane | A ClipPlane is a single plane represented as | |

ClipPrimitive | * ClipPrimitve is a base class for clipping implementations that use | |

ClipShape | A clipping volume defined by a shape (an array of 3d points using only x and y dimensions). | |

ClipVector | Class holding an array structure of shapes defined by clip plane sets | |

Constant | Commonly used constant values. | |

ConvexClipPlaneSet | A ConvexClipPlaneSet is a collection of ClipPlanes, often used for bounding regions of space. | |

FrameBuilder | Helper class to accumulate points and vectors until there is enough data to define a coordinate system. | |

Geometry | ||

NumberArray | ||

OrderedRotationAngles | OrderedRotationAngles represents a non-trivial rotation using three simple axis rotation angles, and an order in which to apply them. | |

Plane3dByOriginAndUnitNormal | A plane defined by | |

Plane3dByOriginAndVectors | A Point3dVector3dVector3d is an origin and a pair of vectors. | |

PlaneSetParamsCache | Cache structure that holds a ClipPlaneSet and various parameters for adding new ClipPlanes to the set. | |

Point2d | ||

Point2dArray | ||

Point2dArrayCarrier | Helper object to access members of a Point2d[] in geometric calculations. | |

Point3dArray | ||

Point3dArrayCarrier | Helper object to access members of a Point3d[] in geometric calculations. | |

Point4dArray | ||

PolygonOps | Static class for operations that treat an array of points as a polygon (with area!) | |

Range1d | ||

Range2d | ||

Range3d | ||

RangeBase | ||

Ray3d | A Ray3d contains | |

Segment1d | * A Segment1d is an interval of an axis named x. | |

Transform | A transform is an origin and a Matrix3d. | |

UnionOfConvexClipPlaneSets | A collection of ConvexClipPlaneSets. | |

Vector2d | 3D vector with x,y properties | |

Vector3dArray | ||

XY | Minimal object containing x,y and operations that are meaningful without change in both point and vector. | |

YawPitchRollAngles | Three angles that determine the orientation of an object in space. |

## Enumerations

Name | Description | |
---|---|---|

AxisIndex | ||

AxisOrder | Enumeration of the 6 possible orderings of XYZ axis order | |

AxisScaleSelect | Enumeration among choice for how a coordinate transformation should incorporate scaling. | |

ClipMask | Bit mask type for easily keeping track of defined vs undefined values and which parts of a clipping shape | |

StandardViewIndex |

## Interfaces

Name | Description | |
---|---|---|

BeJSONFunctions | ||

IsNullCheck | ||

PlaneAltitudeEvaluator | Interface so various plane representations can be used by algorithms that just want altitude evaluations. | |

TrigValues | ||

WritableLowAndHighXY | ||

WritableLowAndHighXYZ | ||

WritableXAndY | ||

WritableXYAndZ | ||

WriteableHasZ | ||

YawPitchRollProps | The properties that define YawPitchRollAngles. |

## Type Aliases

Name | Description | |
---|---|---|

AngleProps | The Properties for a JSON representation of an Angle. | |

AngleSweepProps | The Properties for a JSON representation of an AngleSweep. | |

HasZ | ||

LowAndHighXY | ||

LowAndHighXYZ | ||

Matrix3dProps | ||

Range1dProps | ||

Range2dProps | ||

Range3dProps | ||

TransformProps | ||

XAndY | ||

XYAndZ | ||

XYProps | ||

XYZProps |

Last Updated: 10 April, 2019