geometry-core

Classes

Name Description
AkimaCurve3d Interpolating curve.
AkimaCurve3dOptions fitPoints and end condition data for AkimaCurve3d
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 be clear about whether their angle is degrees or radians.
AngleSweep An AngleSweep is a pair of angles at start and end of an interval.
Arc3d Circular or elliptic arc.
AuxChannel Represents a single PolyfaceAuxData channel.
AuxChannelData Represents the AuxChannel data at a single input value.
BagOfCurves * A BagOfCurves object is a collection of AnyCurve objects.
BarycentricTriangle 3 points defining a triangle to be evaluated with Barycentric coordinates.
BentleyGeometryFlatBuffer Top level entries to convert between GeometryQuery types and FlatBuffer Bytes.
Bezier1dNd Shared implementation details for derived bezier curve classes
BezierCurve3d 3d Bezier curve class.
BezierCurve3dH 3d curve with homogeneous weights.
BezierCurveBase Base class for CurvePrimitive (necessarily 3D) with _polygon.
BooleanClipFactory A BooleanClipFactory is a factory to create objects that implement interior nodes of a tree of boolean clip operations.
Box A box-like solid defined by
BSpline1dNd Bspline knots and poles for 1d-to-Nd.
BSpline2dNd Bspline knots and poles for 2d-to-Nd.
BSplineCurve3d A BSplineCurve3d is a bspline curve whose poles are Point3d.
BSplineCurve3dBase Base class for BSplineCurve3d and BSplineCurve3dH.
BSplineCurve3dH Weighted (Homogeneous) BSplineCurve in 3d
BSplineSurface3d BSplineSurface3d is a parametric surface in xyz space.
BSplineSurface3dH BSpline Surface in xyzw homogeneous space
ClippedPolyfaceBuilders A pair of PolyfaceBuilder objects, for use by clippers that emit inside and outside parts.
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
CloneCurvesContext Algorithmic class for cloning curve collections.
Cone A cone with axis along the z axis of a (possibly skewed) local coordinate system.
ConsolidateAdjacentCurvePrimitivesOptions * Options to control method RegionOps.consolidateAdjacentPrimitives
ConstructCurveBetweenCurves Context for constructing a curve that is interpolated between two other curves.
ConvexClipPlaneSet A ConvexClipPlaneSet is a collection of ClipPlanes, often used for bounding regions of space.
CoordinateXYZ A Coordinate is a Point3d with supporting methods from the GeometryQuery abstraction.
CurveAndSurfaceLocationDetail Carrier for both curve and surface data, e.g.
CurveChain Shared base class for use by both open and closed paths.
CurveChainWithDistanceIndex CurveChainWithDistanceIndex is a CurvePrimitive whose fractional parameterization is proportional to true
CurveCollection A CurveCollection is an abstract (non-instantiable) class for various sets of curves with particular structures:
CurveCurve CurveCurve has static method for various computations that work on a pair of curves or curve collections.
CurveExtendOptions Logic for deciding how a curve may be extended for closest point or intersection searches.
CurveFactory The CurveFactory class contains methods for specialized curve constructions.
CurveLocationDetail CurveLocationDetail carries point and paramter data about a point evaluated on a curve.
CurveLocationDetailArrayPair Data bundle for a pair of arrays of CurveLocationDetail structures such as produced by CurveCurve,IntersectXY and
CurveLocationDetailPair A pair of CurveLocationDetail.
CurvePrimitive A curve primitive is bounded
CylindricalRangeQuery Context for computing geometry range around an axis.
DirectSpiral3d DirectSpiral3d acts like a TransitionSpiral3d for serialization purposes, but implements spiral types that have "direct" xy calculations without the integrations required
Ellipsoid * An Ellipsoid is a (complete) unit sphere with an arbitrary (possibly skewed) Transform to 3d.
EllipsoidPatch * An EllipsoidPatch is
FacetFaceData Data for a face in a polyface containing facets.
FacetOrientationFixup
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.
GeometryHandler * GeometryHandler defines the base abstract methods for double-dispatch geometry computation.
GeometryQuery * GeometryQuery is an abstract base class with (abstract) methods for querying curve, solid primitive, mesh, and bspline surfaces
GraphSplitData
GrowableBlockedArray Array of contiguous doubles, indexed by block number and index within block.
GrowableFloat64Array A GrowableFloat64Array is Float64Array accompanied by a count of how many of the array's entries are considered in use.
GrowableXYArray GrowableXYArray manages a (possibly growing) Float64Array to pack xy coordinates.
GrowableXYZArray GrowableXYArray manages a (possibly growing) Float64Array to pack xy coordinates.
HalfEdgeGraphSearch
HalfEdgeMaskTester
HalfEdgeMaskValidation static methods to inspect mask consistency properties in HalfEdgeGraph.
HalfEdgePointerInspector HalfEdgePointerInspector has methods to check HalfEdge objects for pointer errors.
HalfEdgePositionDetail Description of a generalized position within a graph, categorized as:
IndexedCollectionInterval Object describing a (contiguous) subset of indices to an IndexedXYZCollection
IndexedEdgeMatcher An IndexedEdgeMatcher carries an array (edges) of edges start & end indices for sorting and subsequent analyses (such as testing for closed mesh)
IndexedPolyface An IndexedPolyface is a set of facets which can have normal, param, and color arrays with independent point, normal, param, and color indices.
IndexedPolyfaceSubsetVisitor An IndexedPolyfaceSubsetVisitor is an IndexedPolyfaceVisitor which only visits a subset of facets in the polyface.
IndexedPolyfaceVisitor An IndexedPolyfaceVisitor is an iterator-like object that "visits" facets of a mesh.
IndexedReadWriteXYZCollection abstract base class extends IndexedXYZCollection, adding methods to push, peek, and pop, and rewrite.
IndexedXYCollection abstract base class for access to XYZ data with indexed reference.
IndexedXYZCollection abstract base class for read-only access to XYZ data with indexed reference.
IndexedXYZCollectionInterval Reference to an interval of the indices of an IndexedXYZCollection.
IndexedXYZCollectionPolygonOps IndexedXYZCollectionPolygonOps class contains static methods for typical operations on polygons carried as IndexedXyZCollection
InsertAndRetriangulateContext Context for repeated insertion of new points in a graph.
IntegratedSpiral3d An IntegratedSpiral3d is a curve defined by integrating its curvature.
InterpolationCurve3d Interpolating curve.
InterpolationCurve3dOptions fitPoints and end condition data for InterpolationCurve3d
JointOptions * control parameters for joint construction.
KnotVector Array of non-decreasing numbers acting as a knot array for bsplines.
LinearSweep A LinearSweep is a SolidPrimitive defined by
LineSegment3d A LineSegment3d is:
LineString3d * A LineString3d (sometimes called a PolyLine) is a sequence of xyz coordinates that are to be joined by line segments.
LongitudeLatitudeNumber An AngleAngleNumber is a pair of angles (named longitude and latitude) and an additional number.
Loop A Loop is a curve chain that is the boundary of a closed (planar) loop.
Map4d Map4 carries two Matrix4d which are inverses of each other.
Matrix3d A Matrix3d is a 3x3 matrix.
Matrix4d * A Matrix4d is a matrix with 4 rows and 4 columns.
MomentData A MomentData structure exists in several levels:
NullGeometryHandler NullGeometryHandler is a base class for dispatching various geometry types to
NumberArray The NumberArray class contains static methods that act on arrays of numbers.
OffsetHelpers
ParityRegion * A ParityRegion is a collection of Loop objects.
Path * A Path object is a collection of curves that join head-to-tail to form a path.
PathFragment * Annotation of an interval of a curve.
Plane3dByOriginAndUnitNormal A plane defined by
Plane3dByOriginAndVectors A Point3dVector3dVector3d is an origin and a pair of vectors.
PlaneByOriginAndVectors4d A Plane4dByOriginAndVectors is a 4d origin and pair of 4d "vectors" defining a 4d plane.
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.
Point3dArrayCarrier Helper object to access members of a Point3d[] in geometric calculations.
Point3dArrayPolygonOps Point3dArrayPolygonOps class contains static methods for typical operations on polygons carried as Point3d[]
Point4d 4 Dimensional point (x,y,z,w) used in perspective calculations.
Point4dArray The Point4dArray class contains static methods that act on arrays of 4d points.
PointSearchContext
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.
PointString3d A PointString3d is an array of points.
PointStringDeepXYZArrayCollector
Polyface A Polyface is n abstract mesh structure (of unspecified implementation) that provides a PolyfaceVisitor
PolyfaceAuxData The PolyfaceAuxData structure contains one or more analytical data channels for each vertex of a Polyface, allowing the polyface to be styled
PolyfaceBuilder * Simple construction for strongly typed GeometryQuery objects:
PolyfaceClip PolyfaceClip is a static class gathering operations using Polyfaces and clippers.
PolyfaceData PolyfaceData carries data arrays for point, normal, param, color and their indices.
PolyfaceQuery PolyfaceQuery is a static class whose methods implement queries on a polyface or polyface visitor provided as a parameter to each method.
PolygonOps Various (static method) computations for arrays of points interpreted as a polygon.
PolylineOps PolylineOps is a collection of static methods operating on polylines.
ProxyCurve A ProxyCurve is expected to be used as a base class for
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.
RangeLengthData Accumulated data for x,y,z length statistics in ranges.
RangeSearch Class with static members to work with various range searchers.
Ray3d A Ray3d contains
RecurseToCurvesGeometryHandler Implement GeometryHandler methods, with all curve collection methods recursing to children.
RecursiveCurveProcessor base class for detailed traversal of curve artifacts.
RecursiveCurveProcessorWithStack base class for detailed traversal of curve artifacts
RegionOps class RegionOps has static members for calculations on regions (areas). Beta
RotationalSweep A LinearSweep is
RuledSweep A ruled sweep (surface) is a collection of 2 or more contours.
Segment1d * A Segment1d is an interval of an axis named x.
SignedDataSummary Class to accumulate statistics about a stream of signed numbers with tag items.
SmallSystem static methods for commonly appearing sets of equations in 2 or 3 variables
SmoothTransformBetweenFrusta context for constructing smooth motion a startFrustum and endFrustum.
SolidPrimitive Base class for SolidPrimitive variants.
SortableEdge * For boundary sorting, an edge is a (packed!) Float64Array.
Sphere A Sphere is
StrokeCountChain class StrokeCountChain contains:
StrokeCountMap data carrier interface for per-primitive stroke counts and distances used by PolyfaceBuilder.
StrokeOptions tolerance blob for various stroking methods.
SweepContour Sweepable contour with Transform for local to world interaction.
SweepLineStringToFacetContext
TaggedNumericData Structure with 2 integer tags and optional arrays of integers, doubles, points, vectors, and geometry.
TorusPipe A torus pipe is a partial torus (donut).
Transform A transform is an origin and a Matrix3d.
TransitionConditionalProperties A true transition spiral is a curve defined by its curvature, with the curvature function symmetric about midpoint.
TransitionSpiral3d TransitionSpiral3d is a base class for multiple variants of spirals.
Triangulator (static) methods for triangulating polygons
UnionOfConvexClipPlaneSets A collection of ConvexClipPlaneSets.
UnionRegion * A UnionRegion is a collection of other planar region types -- Loop and ParityRegion.
UVSurfaceLocationDetail CurveLocationDetail carries point and paramter data about a point evaluated on a curve.
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 Vector3ddArray class contains static methods that act on arrays of 2d vectors.
XY Minimal object containing x,y and operations that are meaningful without change in both point and vector.
XYParitySearchContext * XYParitySearchContext is an internal class for callers that can feed points (without extracting to array structures)
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.

Enumerations

Name Description
AuxChannelDataType The types of data that can be represented by an AuxChannelData.
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.
BSplineWrapMode Enumeration of the possible ways of converting a "periodic" knot vector to an open knot vector.
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.
CurveCurveApproachType Enumeration of configurations for intersections and min/max distance-between-curve
CurveExtendMode enumeration of condition for extending a curve beyond start or end point.
CurveIntervalRole An enumeration of special conditions being described by a CurveLocationDetail.
CurveSearchStatus Return code for CurvePrimitive method moveSignedDistanceFromFraction
DuplicateFacetClusterSelector Enumeration of cases for retaining facets among duplicates
HalfEdgeTopo Enumeration of categorization of "where" a HalfEdgePositionDetail is sitting in the graph.
InverseMatrixState A Matrix3d is tagged indicating one of the following states:
RayClassification
RegionBinaryOpType Enumeration of the binary operation types for a booleans among regions
StandardViewIndex Standard views.
UVSelect UVSelect is an integer indicating uDirection (0) or vDirection (1) in a bspline surface parameterization.
WeightStyle Enumeration of how weights are carried

Interfaces

Name Description
AkimaCurve3dProps fitPoints AkimaCurve3d
ArcBlendData Carrier structure for an arc with fractional data on incoming, outgoing curves.
ArcVectors Compact vector form of an elliptic arc defined by center, vectors for angle coordinates 0 and 90 degrees, and sweep.
BeJSONFunctions Interface for toJSON and setFromJSON methods
BSplineSurface3dQuery Interface for methods supported by both regular (xyz) and weighted (xyzw) bspline surfaces.
ChainMergeContextOptions interface containing various options appropriate to merging lines segments into chains.
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
FacetProjectedVolumeSums Structure to return multiple results from volume between facets and plane
HalfEdgeTestObject Interface for an object that executes boolean tests on edges.
InterpolationCurve3dProps fitPoints and end condition data for InterpolationCurve3d
IStrokeHandler IStrokeHandler is an interface with methods to receive data about curves being stroked.
PackedPointGrid interface for points returned from getPointGrid, with annotation of physical and weighting dimensions.
PlaneAltitudeEvaluator Interface so various plane representations can be used by algorithms that just want altitude evaluations.
PolyfaceVisitor A PolyfaceVisitor manages data while walking through facets.
PolygonClipper Interface for clipping polygons.
Range2dSearchInterface Interface for classes that can search with range optimizations.
SignedLoops Carrier object for loops characterized by area sign
TrigValues object with a radians value and its associated cosine and sine values.
UVSurface Interface with methods for mapping (u,v) fractional coordinates to surface xyz and derivatives.
UVSurfaceIsoParametricDistance Interface for queries of distance-along in u and v directions
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
BGFBAccessors
IModelJson ImodelJson namespace has classes for serializing and deserialization json objects
TaggedNumericConstants TaggedNumericConstants defines enums with constant values for use in tags of TaggedNumericData

Type Aliases

Name Description
AngleProps The Properties for a JSON representation of an Angle.
AngleSweepProps The Properties for a JSON representation of an AngleSweep.
AnnounceCurvePrimitive
AnnounceDrapePanel
AnnounceNumberNumber
AnnounceNumberNumberCurvePrimitive
AnyCurve Union type for GeometryQuery classes that have contain curves, either as individual parameter space or as collections
AnyCurvePrimitive Union type for subclasses of CurvePrimitive.
AnyGeometryQuery Union type for subclasses of GeometryQuery.
AnyRegion Union type for GeometryQuery classes that bound (planar) regions.
AnySolidPrimitive Union type of all subclasses of SolidPrimitive.
BlockComparisonFunction
ChainTypes Possible return types from
ClipPrimitiveProps Wire format describing a ClipPrimitive.
ClipVectorProps Wire format describing a ClipVector.
ConvexClipPlaneSetProps Wire format describing a ConvexClipPlaneSet.
CurveCollectionType Describes the concrete type of a CurveCollection.
CurvePrimitiveMutator
CurvePrimitiveType Describes the concrete type of a CurvePrimitive.
DirectSpiralTypeName This is the set of valid type names for "direct" spirals.
GeometryQueryCategory Describes the category of a GeometryQuery, enabling type-switching like:
HasZ interface for readable z number members.
IntegratedSpiralTypeName This is the set of valid type names for "integrated" spirals
LineStringDataVariant type for use as signature for xyz data of a single linestring appearing in a parameter list.
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)
Matrix4dProps Coordinate data with Point4d numeric data as an array [x,y,z,w]
MultiLineStringDataVariant type for use as signature for multiple xyz data of multiple linestrings appearing in a parameter list.
OptionalArray Type for a value which may be either (a) undefined or (b) an array of type [].
OptionalGrowableFloat64Array Type for a OptionalGrowableFloat64Array or undefined.
OptionalLinearSearchRange2dArray
Point4dProps 4d point packed in an array of 4 numbers.
Range1dProps interface for variant json representing a Range1d
Range2dProps interface for variant json representing a Range2d
Range3dProps interface for variant json representing a Range3d
SolidPrimitiveType Describes the concrete type of a SolidPrimitive.
SortableEdgeCluster
TransformProps interface for variant json (one of)
UnionOfConvexClipPlaneSetsProps Wire format descrbing a UnionOfConvexClipPlaneSets.
VariantCurveExtendParameter Variants of a single parameter.
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: 11 June, 2024