import type { Matrix4 } from "./Matrix4.ts"; import { Vector3 } from "./Vector3.ts"; export interface SceneNode { type: string; matrixWorld: Matrix4; updateMatrixWorld: (force: boolean, parentUpdated: boolean) => void; geometry?: { attributes?: { position?: { array: ArrayLike; itemSize: number; }; }; }; children: SceneNode[]; visible?: boolean; } /** 3D axis-aligned bounding box. */ export declare class Box3 { #private; constructor(min?: Vector3, max?: Vector3); get min(): Vector3; set min(value: Vector3); get max(): Vector3; set max(value: Vector3); get centre(): Vector3; get size(): Vector3; get width(): number; get height(): number; get depth(): number; get corners(): Vector3[]; get isEmpty(): boolean; clone(): Box3; containsBox(box: Box3): boolean; containsPoint(point: Vector3): boolean; copy(box: Box3): this; equals(box: Box3): boolean; expandByPoint(point: Vector3): this; expandByScalar(scalar: number): this; expandByVector3(v: Vector3): this; getCentre(out: Vector3): Vector3; intersectsBox(box: Box3): boolean; intersectsSphere(sphere: { centre: Vector3; radius: number; }): boolean; makeEmpty(): this; setFromCentreAndSize(centre: Vector3, size: Vector3): this; /** * Computes the world-space bounding box of an object and its visible * children. Accesses vertex positions via `object.geometry?.attributes?.position` * for Mesh nodes; will be refined once Geometry is implemented. */ setFromObject(object: SceneNode): this; setFromPoints(points: Vector3[]): this; translate(offset: Vector3): this; union(box: Box3): this; } //# sourceMappingURL=Box3.d.ts.map