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
- 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 Angle carries the numeric value of an angle, with methods to allow (require!) callers to |
|
| AngleSweep | An AngleSweep is 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 | Static class whose various methods are functions for clipping geometry | |
| ClipVector | Class holding an array structure of shapes defined by ClipPrimitive |
|
| 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) Transform to 3d. |
|
| EllipsoidPatch | * An EllipsoidPatch is |
|
| 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 | IndexedXYZCollectionPolygonOps class contains static methods for typical operations on polygons carried as IndexedXyZCollection |
|
| LongitudeLatitudeNumber | An AngleAngleNumber is a pair of angles (named longitude and latitude) and an additional number. |
|
| Matrix3d | A Matrix3d is a 3x3 matrix. | |
| NumberArray | The NumberArray class contains static methods that act on arrays of numbers. |
|
| Plane3dByOriginAndUnitNormal | A plane defined by | |
| Plane3dByOriginAndVectors | A Point3dVector3dVector3d is an origin and a pair of vectors. | |
| Point2d | 2D point with x,y as properties |
|
| Point2dArray | The Point2dArray class 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,z as properties |
|
| Point3dArray | The Point3dArray class contains static methods that act on arrays of 3d points. |
|
| Point3dArrayPolygonOps | Point3dArrayPolygonOps class contains static methods for typical operations on polygons carried as Point3d[] |
|
| Point4dArray | The Point4dArray class 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. | |
| PolygonOps | Various (static method) computations for arrays 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. | |
| Ray3d | A Ray3d contains | |
| Segment1d | * A Segment1d is an interval of an axis named x. | |
| Transform | A transform is 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,y as properties |
|
| Vector3d | 3D vector with x,y,z as properties |
|
| Vector3dArray | The Vector3dArray class 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 | * XYZ is a minimal object containing x,y,z and operations that are meaningful without change in both point and vector. |
|
| 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 toJSON and setFromJSON methods |
|
| 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 | |
| PerpParallelOptions | Options used for methods like Vector2d.isPerpendicularTo and Vector3d.isParallelTo. | |
| PlaneAltitudeEvaluator | Interface so various plane representations can be used by algorithms that just want altitude evaluations. | |
| PolygonClipper | Interface for clipping polygons. | |
| TrigValues | object with a radians value and its associated cosine and sine values. | |
| WritableLowAndHighXY | interface for class with named properties low and high, both being WriteableXAndY |
|
| WritableLowAndHighXYZ | interface for class with named properties low and high, both being WriteableXYAndZ |
|
| WritableXAndY | interface for class with x and y as number properties. |
|
| WritableXYAndZ | interface for class with x, y, z as number property. |
|
| WriteableHasZ | interface for class with z as number property. |
|
| YawPitchRollProps | angle properties of a YawPitchRoll orientation |
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 z number members. |
|
| LowAndHighXY | interface for type with readable low and high members which have x and y number members. |
|
| LowAndHighXYZ | interface for type with readable low and high members which have x, y, and z number 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 x and y number members. |
|
| XYAndZ | interface for type with readable x, y, z number members. |
|
| XYProps | interface for variant json (one of) | |
| XYZProps | interface for variant json (one of) |
Last Updated: 30 November, 2023