Box Class

A box-like solid defined by

  • A local coordinate frame
    • (0,0,0) is left lower rear corner of box (considering "left" to reference x, "lower" to reference y, "rear and front" to reference z=0 and z=1)
    • (0,0,1) is left lower front corner.
    • (baseX,baseY,z) is right upper corner at z
    • note that the frame x and y columns are usually unit vectors in local space, but z is full rear to front vector
  • The separate values for base and top x and y allow the box to be a "view frustum" with parallel back and front planes but independent x and y bellows effects.

Extends

Methods

Name Description
constructor(map: Transform, baseX: number, baseY: number, topX: number, topY: number, capped: boolean): Box Protected    
clone(): Box Return a clone  
cloneTransformed(transform: Transform): Box | undefined Clone the box and immediately apply transform to the local frame of the clone.  
constantVSection(zFraction: number): Loop Consider the box sides (not top and bottom) as a (u,v) surface with  
dispatchToGeometryHandler(handler: GeometryHandler): any Second step of double dispatch: call handler.handleBox(this)  
extendRange(rangeToExtend: Range3d, transform?: Transform): void Extend rangeToExtend by each of the 8 corners  
getBaseOrigin(): Point3d (property accessor) return the local coordinates point (0,0,0) to world  
getBaseX(): number (property accessor) return the x length at z = 0  
getBaseY(): number (property accessor) return the y length at z = 0  
getConstructiveFrame(): Transform | undefined Return a coordinate frame (right handed unit vectors)  
getCorners(): Point3d[] Returns the 8 corners in x fastest, then y, finally z lexical order.  
getTopOrigin(): Point3d (property accessor) return the local coordinates point (0,0,1) to world  
getTopX(): number (property accessor) return the x length at z = 1  
getTopY(): number (property accessor) return the x length at z = 1  
getVectorX(): Vector3d (property accessor) return the local coordinate frame x vector  
getVectorY(): Vector3d (property accessor) return the local coordinate frame y vector  
getVectorZ(): Vector3d (property accessor) return the local coordinate frame z vector  
isAlmostEqual(other: GeometryQuery): boolean test for near equality  
isSameGeometryClass(other: any): boolean Test of other is also of class Box  
strokeConstantVSection(zFraction: number): LineString3d Return strokes of the cross-section rectangle at local z coordinate  
tryTransformInPlace(transform: Transform): boolean Apply the transform to the box's localToWorld frame.  
createDgnBox(origin: Point3d, vectorX: Vector3d, vectorY: Vector3d, topOrigin: Point3d, baseX: number, baseY: number, topX: number, topY: number, capped: boolean): Box | undefined Static Create a new box from vector and size daa.  
createDgnBoxWithAxes(origin: Point3d, axes: Matrix3d, topOrigin: Point3d, baseX: number, baseY: number, topX: number, topY: number, capped: boolean): Box | undefined Static Create a new box with xy directions taken from columns of the axes matrix.  
createRange(range: Range3d, capped: boolean): Box | undefined Static Create an axis-aligned Box primitive for a range.  

Inherited methods

Name Inherited from Description
range(transform?: Transform, result?: Range3d): Range3d Inherited SolidPrimitive Return the range of the entire GeometryQuery tree.
tryTranslateInPlace(dx: number, dy: number = 0.0, dz: number = 0.0): boolean Inherited SolidPrimitive Try to move the geometry by dx,dy,dz.
areAlmostEqual(a: GeometryQuery, b: GeometryQuery): boolean Static Inherited SolidPrimitive Apply instance method isAlmostEqual if both are defined.
computeScaledTolerance(geom: GeometryQuery | GeometryQuery[], options?: ScaledToleranceOptions): number Static Inherited SolidPrimitive Compute a distance tolerance appropriate for comparing the coordinates of geom.
scaleToleranceForGeometry(geom: GeometryQuery | GeometryQuery[], distanceTolerance: number, options?: ScaledToleranceOptions): number Static Inherited SolidPrimitive Scale the given distance tolerance as appropriate for comparing the coordinates of geom.

Properties

Name Type Description
isClosedVolume Accessor ReadOnly boolean    
isSkew Accessor ReadOnly boolean Return true if the solid's local z-axis is not perpendicular to its local xy-plane.  
solidPrimitiveType Readonly "box" String name for schema properties  

Inherited properties

Name Type Inherited from Description
_capped Protected Inherited boolean SolidPrimitive Flag indicating whether cap region is considered closed (i.e.
capped Accessor Inherited boolean SolidPrimitive Whether this is a capped solid.
children Accessor Inherited ReadOnly GeometryQuery[] | undefined SolidPrimitive Return GeometryQuery children for recursive queries.
* leaf classes do not need to implement.
geometryCategory Readonly Inherited "solid" SolidPrimitive String name for schema properties.

Defined in

Last Updated: 24 September, 2026