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
- Plane3d -- an abstract base class extended by Plane3dByOriginAndNormal, Plane3dByOriginAndUnitNormal, Point4d, and ClipPlane
- 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
- LatitudeLongitudeNumber -- carrier for position and altitude on sphere or ellipsoid
- 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
- BilinearPatch -- twisted quadrilateral defined by 4 points
- BarycentricTriangle -- triangle defined by 3 points.
- 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 | ||
| Angle | An Anglecarries the numeric value of an angle, with methods to allow (require!) callers to | |
| AngleSweep | An AngleSweepis a pair of angles at start and end of an interval. | |
| BarycentricTriangle | 3 points defining a triangle to be evaluated with barycentric coordinates. | |
| BooleanClipFactory | A BooleanClipFactory is a factory to create objects that implement interior nodes of a tree of boolean clip operations. | |
| ClipPlane | A ClipPlane is a single plane represented as | |
| ClipPrimitive | * ClipPrimitive 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). | |
| ClipUtilities | Class whose various static methods are functions for clipping geometry | |
| ClipVector | Class holding an array structure of shapes defined by ClipPrimitive | |
| Constant | Commonly used constant values. | |
| ConvexClipPlaneSet | A ConvexClipPlaneSet is a collection of ClipPlanes, often used for bounding regions of space. | |
| Ellipsoid | * An Ellipsoid is a (complete) unit sphere with an arbitrary (possibly skewed) Transformto 3d. | |
| EllipsoidPatch | * An EllipsoidPatchis | |
| FrameBuilder | Helper class to accumulate points and vectors until there is enough data to define a coordinate system. | |
| GeodesicPathPoint | Detailed data for a point on a 2-angle parameter space. | |
| GeodesicPathSolver | Algorithm implementation class for computing approximate optimal (shortest) path points. | |
| Geometry | Class containing static methods for typical numeric operations. | |
| IndexedXYZCollectionPolygonOps | IndexedXYZCollectionPolygonOpsclass contains static methods for typical operations on polygons carried asIndexedXYZCollection | |
| LongitudeLatitudeNumber | An AngleAngleNumberis a pair of angles (namedlongitudeandlatitude) and an additional number. | |
| Matrix3d | A Matrix3d is a 3x3 matrix. | |
| NumberArray | The NumberArrayclass contains static methods that act on arrays of numbers. | |
| Plane3d | Plane3d is the abstract base class for multiple 3d plane representations: | |
| Plane3dByOriginAndUnitNormal | A plane defined by | |
| Plane3dByOriginAndVectors | A Plane3dByOriginAndVectors is an origin and a pair of vectors. | |
| Point2d | 2D point with x,yas properties | |
| Point2dArray | The Point2dArrayclass contains static methods that act on arrays of 2d points. | |
| Point2dArrayCarrier | Helper object to access members of a Point2d[] in geometric calculations. | |
| Point3d | 3D point with x,y,zas properties | |
| Point3dArray | The Point3dArrayclass contains static methods that act on arrays of 3d points. | |
| Point3dArrayPolygonOps | Point3dArrayPolygonOpsclass contains static methods for typical operations on polygons carried asPoint3d[] | |
| Point4dArray | The Point4dArrayclass contains static methods that act on arrays of 4d points. | |
| PointStreamGrowableXYZArrayCollector | Concrete class to handle startChain, handleXYZ and endChain calls and return a (one-level deep array of | |
| PointStreamRangeCollector | PointStream handler to collect the range of points. | |
| PointStreamXYZXYZHandlerBase | Base class for handling points in pairs. | |
| PointStringDeepXYZArrayCollector | ||
| PolygonLocationDetail | Carries data about a point in the plane of a polygon. | |
| PolygonLocationDetailPair | A pair of PolygonLocationDetail. | |
| PolygonOps | Various static methods to perform computations on an array of points interpreted as a polygon. | |
| PolylineOps | PolylineOps is a collection of static methods operating on polylines. | |
| Range1d | Range on a 1d axis | |
| Range2d | Range box in xy plane | |
| Range3d | Axis aligned range in 3D. | |
| RangeBase | Base class for Range1d, Range2d, Range3d. | |
| Ray2d | Ray with xy origin and direction | |
| Ray3d | A Ray3d contains | |
| Segment1d | * A Segment1d is an interval of an axis named x. | |
| Transform | A Transform consists of an origin and a Matrix3d. | |
| TriangleLocationDetail | Carries data about a location in the plane of a triangle. | |
| UnionOfConvexClipPlaneSets | A collection of ConvexClipPlaneSets. | |
| UVSurfaceOps | Support methods to act on surfaces with 0..1 uv fractional parameterization | |
| Vector2d | 2D vector with x,yas properties | |
| Vector3d | 3D vector with x,y,zas properties | |
| Vector3dArray | The Vector3dArrayclass contains static methods that act on arrays of 3d vectors. | |
| XY | Minimal object containing x,y and operations that are meaningful without change in both point and vector. | |
| XYZ | * XYZis a minimal object containing x,y,z and operations that are meaningful without change in both | |
| YawPitchRollAngles | Three angles that determine the orientation of an object in space, sometimes referred to as [Tait–Bryan angles] | 
Enumerations
| Name | Description | |
|---|---|---|
| AxisIndex | Enumeration of numeric indices of 3 axes AxisIndex.X, AxisIndex.Y, AxisIndex.Z | |
| AxisOrder | Enumeration of the 6 possible orderings of XYZ axis order | |
| AxisScaleSelect | Enumeration among choice for how a coordinate transformation should incorporate scaling. | |
| ClipMaskXYZRangePlanes | Bit mask type for referencing subsets of 6 planes of range box. | |
| ClipPlaneContainment | Enumerated type for describing where geometry lies with respect to clipping planes. | |
| ClipStatus | Enumerated type for describing what must yet be done to clip a piece of geometry. | |
| ClipStepAction | Enumeration of ways to handle an intermediate fragment from a clipping step. | |
| InverseMatrixState | A Matrix3d is tagged indicating one of the following states: | |
| PolygonLocation | Enumeration of possible locations of a point in the plane of a polygon. | |
| StandardViewIndex | Standard views. | 
Interfaces
| Name | Description | |
|---|---|---|
| BeJSONFunctions | Interface for toJSONandsetFromJSONmethods | |
| Clipper | An object containing clipping planes that can be used to clip geometry. | |
| ClipPlaneProps | Wire format describing a ClipPlane. | |
| ClipPrimitivePlanesProps | Wire format describing a ClipPrimitive defined by a set of clip planes. | |
| ClipPrimitiveShapeProps | Wire format describing a ClipShape. | |
| Cloneable | Interface for method with a clone operation. | |
| ICloneable | Interface for an object with a clone method. | |
| LowAndHighXYProps | JSON representation of LowAndHighXY. | |
| LowAndHighXYZProps | JSON representation of LowAndHighXYZ. | |
| PerpParallelOptions | Options used for methods like isPerpendicularTo and isParallelTo. | |
| PlaneAltitudeEvaluator | Plane Evaluation methods. | |
| PolygonClipper | Interface for clipping convex polygons. | |
| TrigValues | Object with a radians value and its associated cosine and sine values. | |
| WritableLowAndHighXY | Interface for class with named properties lowandhigh, both beingWriteableXAndY | |
| WritableLowAndHighXYZ | Interface for class with named properties lowandhigh, both beingWriteableXYAndZ | |
| WritableXAndY | Interface for class with xandyas number properties. | |
| WritableXYAndZ | Interface for class with x,y,zas number property. | |
| WriteableHasZ | Interface for class with zas number property. | |
| YawPitchRollProps | Angle properties of a YawPitchRollorientation | 
Namespaces
| Name | Description | |
|---|---|---|
| XYAndZ | 
Type Aliases
| Name | Description | |
|---|---|---|
| AngleProps | The properties for a JSON representation of an Angle. | |
| AngleSweepProps | The properties for a JSON representation of an AngleSweep. | |
| ClipPrimitiveProps | Wire format describing a ClipPrimitive. | |
| ClipVectorProps | Wire format describing a ClipVector. | |
| ConvexClipPlaneSetProps | Wire format describing a ConvexClipPlaneSet. | |
| HasZ | Interface for readable znumber members. | |
| LowAndHighXY | Interface for type with readable lowandhighmembers which havexandynumber members. | |
| LowAndHighXYZ | Interface for type with readable lowandhighmembers which havex,y, andznumber members. | |
| Matrix3dProps | Interface for variant json (one of) | |
| Range1dProps | Interface for variant json representing a Range1d | |
| Range2dProps | Interface for variant json representing a Range2d | |
| Range3dProps | Interface for variant json representing a Range3d | |
| TransformProps | Interface for variant json (one of) | |
| UnionOfConvexClipPlaneSetsProps | Wire format describing a UnionOfConvexClipPlaneSets. | |
| XAndY | Interface for readable xandynumber members. | |
| XYAndZ | Interface for type with readable x,y,znumber members. | |
| XYProps | Interface for variant json (one of) | |
| XYZProps | Interface for variant json (one of) | 
Last Updated: 10 June, 2025
Found something wrong, missing, or unclear on this page? Raise an issue in our repo.