core-geometry

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
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.
BilinearPatch A bilinear patch is a surface defined by its 4 corner points.
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
BSplineCurveOps A class with static methods for creating B-spline curves.
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 Class whose various static 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.
ConvexFacetLocationDetail Implementation of FacetLocationDetail for a convex facet.
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 parameter data about a point evaluated on a curve.
CurveLocationDetailArrayPair Data bundle for a pair of arrays of CurveLocationDetail structures. Deprecated
CurveLocationDetailPair A pair of CurveLocationDetail.
CurveOps Static methods for miscellaneous curve operations.
CurvePrimitive A curve primitive is bounded.
CylindricalRangeQuery Context for computing geometry range around an axis.
DeepCompare Utilities to compare json objects by searching through their properties.
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.
FacetIntersectOptions Options for computing and processing facet intersection methods.
FacetLocationDetailPair A pair of FacetLocationDetail.
FacetOffsetProperties
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 Queries to be supported by Curve, Surface, and Solid objects
GraphSplitData
GriddedRaggedRange2dSet A GriddedRaggedRange2dSet is:
GriddedRaggedRange2dSetWithOverflow Use GriddedRaggedRange2dSetWithOverflow for searching among many ranges for which:
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.
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 XY 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, used in offset construction methods such as RegionOps.constructPolygonWireXYOffset and Region.Ops.constructCurveXYOffset.
KnotVector Array of non-decreasing numbers acting as a knot array for B-splines.
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
LineString3dRangeTreeContext Handler class for searching a range tree containing the segments of a linestring.
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.
LoopCurveLoopCurve Structure carrying a pair of loops with curve geometry.
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:
NonConvexFacetLocationDetail Implementation of FacetLocationDetail for a general facet, which may or may not be convex.
NullGeometryHandler NullGeometryHandler is a base class for dispatching various geometry types to application specific implementation
NumberArray The NumberArray class contains static methods that act on arrays of numbers.
OffsetMeshContext
OffsetMeshOptions Options carrier for PolyfaceQuery.cloneOffset.
OffsetOptions Options for offsetting a curve, used in offset construction methods such as CurvePrimitive.constructOffsetXY, RegionOps.constructPolygonWireXYOffset and Region.Ops.constructCurveXYOffset.
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 a fragment, i.e.
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.
PlaneByOriginAndVectors4d A PlaneByOriginAndVectors4d 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[]
Point3dArrayRangeTreeContext Handler class for searching a range tree containing unordered Point3d data.
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 an 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.
PolyfaceRangeTreeContext Handler class for searching a range tree containing the facets of a polyface.
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.
ProxyCurve A ProxyCurve is expected to be used as a base class for curve types that use some existing curve (the proxy)
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.
Ray2d Ray with xy origin and direction
Ray3d A Ray3d contains
RecurseToCurvesGeometryHandler Implement GeometryHandler methods, but override handleCurveCollection so that all methods
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).
RotationalSweep A LinearSweep is
RuledSweep A ruled sweep (surface) is a collection of 2 or more contours.
SectorOffsetProperties Sector properties during offset.
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.
SpacePolygonTriangulation Class with static methods to triangulate various forms of possibly non-planar polygons.
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 planar contour with Transform for local to world interaction.
SweepLineStringToFacetContext
SweepLineStringToFacetsOptions Options carrier for sweeping linework onto meshes.
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 consists of 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.
TriangleLocationDetail Carries data about a location in the plane of a triangle.
TriangularFacetLocationDetail Implementation of FacetLocationDetail for a triangular facet.
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 Vector3dArray class contains static methods that act on arrays of 3d vectors.
VertexNeighborhoodSortData Structure for data used when sorting outbound edges "around a node"
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
YawPitchRollAngles Three angles that determine the orientation of an object in space, sometimes referred to as [Tait–Bryan angles]

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 B-spline curve and surface types in this library are non-periodic.
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.
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:
MiteredSweepOutputSelect Enumeration of geometric output for [CurveFactory.createMiteredSweepSections].
PolygonLocation Enumeration of possible locations of a point in the plane of a polygon.
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.
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. Deprecated
FacetLocationDetail Carries data about a point in the plane of a facet of a mesh.
FacetProjectedVolumeSums Structure to return multiple results from volume between facets and plane
HoleFillOptions Options carrier for HoleFillOptions.fillSimpleHoles
ICloneable Interface for an object with a clone method.
InterpolationCurve3dProps fitPoints and end condition data for InterpolationCurve3d
IStrokeHandler IStrokeHandler is an interface with methods to receive data about curves being stroked.
MiteredSweepOptions Interface bundling options for [CurveFactory.createMiteredSweepSections].
OffsetMeshSelectiveOutputOptions Selective output options for PolyfaceQuery.cloneOffset:
PackedPointGrid interface for points returned from getPointGrid, with annotation of physical and weighting dimensions.
PerpParallelOptions Options used for methods like Vector2d.isPerpendicularTo and Vector3d.isParallelTo.
PlaneAltitudeEvaluator Plane Evaluation methods.
PolyfaceVisitor A PolyfaceVisitor manages data while walking through facets.
PolygonClipper Interface for clipping convex polygons.
Range2dSearchInterface Interface for classes that implement optimized search of 2D ranges.
SectionSequenceWithPlanes Interface to carry parallel arrays of planes and sections, and optional geometry assembled from them, as returned by [CurveFactory.createMiteredSweepSections].
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
BSplineCurveOps Namespace for collecting curve fit API
IModelJson ImodelJson namespace has classes for serializing and deserialization json objects
TaggedNumericConstants TaggedNumericConstants defines enums with constant values for use in tags of TaggedNumericData
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.
AnnounceCurvePrimitive
AnnounceDrapePanel
AnnounceNumberNumber
AnnounceNumberNumberCurvePrimitive
AnnounceVertexNeighborhoodSortData
AnyChain Union type for a general curve chain, or a BagOfCurves understood to be a collection of unrelated chains.
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 Union type for a general curve chain, or a BagOfCurves understood to be a collection of unrelated chains. Deprecated
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.
FacetIntersectCallback
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
LinearCurvePrimitive Union type for a linear CurvePrimitive.
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.
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 describing 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: 12 February, 2024