import * as THREE from "three"; import type { Vector3Tuple } from "three"; /** * Extended THREE.Box3 for CAD-specific bounding box calculations. * Handles ObjectGroup instances and excludes clipping plane meshes. */ declare class BoundingBox extends THREE.Box3 { /** * Expand the bounding box to include an object. * For ObjectGroup instances, only the first mesh (faces) is considered. * Clipping plane meshes (PlaneMeshes/StencilPlane) are excluded. */ expandByObject(object: THREE.Object3D, precise?: boolean): this; /** * Calculate the maximum distance from the origin to any corner of the box. */ max_dist_from_center(): number; /** * Get the bounding sphere of this box. */ boundingSphere(): THREE.Sphere; /** * Get the center point of this box as an array. */ center(): Vector3Tuple; } /** * Visual helper for displaying a bounding box as wireframe lines. * Extends THREE.LineSegments to render the 12 edges of a box. */ declare class BoxHelper extends THREE.LineSegments { type: "BoxHelper"; geometry: THREE.BufferGeometry & { attributes: { position: THREE.BufferAttribute; }; }; object: THREE.Object3D | undefined; /** * Create a BoxHelper for visualizing an object's bounding box. */ constructor(object: THREE.Object3D, color?: number); /** * Update the helper geometry to match the current bounding box. * Should be called when the target object changes. */ update(): void; /** * Set the target object and update the helper. */ setFromObject(object: THREE.Object3D): this; /** * Dispose of geometry and material resources. */ dispose(): void; } export { BoundingBox, BoxHelper };