import * as box3 from './box3'; import type { Vec3Like } from './types'; /** * Sphere storage: Float32Array length 4 [cx, cy, cz, radius]. * Local brand (not part of the seven-piece SSOT); see box3.ts rationale. */ export type Sphere = Float32Array & { readonly __sphere: void; }; /** * Sphere readable input: ArrayLike of length 4 (ordering identical to Sphere). */ export type SphereLike = ArrayLike; /** * Create a Sphere. Defaults to a zero-radius sphere at the origin. */ export declare function create(cx?: number, cy?: number, cz?: number, radius?: number): Sphere; /** * Grow the sphere so `point` lies inside (boundary inclusive). Returns `out`. * * If the sphere was empty (radius < 0) the call re-seeds the center to `point` * with radius 0. Otherwise the radius is set to max(current, distance(center, point)). */ export declare function expandByPoint(out: Sphere, point: Vec3Like): Sphere; /** * True when `point` is inside `sphere` (boundary inclusive). Empty sphere * (radius < 0) contains nothing. */ export declare function containsPoint(s: SphereLike, point: Vec3Like): boolean; /** * True when `sphere` overlaps `box` (boundary inclusive). Uses the standard * closest-point-on-AABB distance test. */ export declare function intersectsBox(s: SphereLike, b: box3.Box3Like): boolean; /** * Build an enclosing sphere from `points` via AABB-center + max-distance * approximation. Empty `points` leaves the negative-radius empty sphere at * the origin. */ export declare function fromPoints(out: Sphere, points: readonly Vec3Like[]): Sphere; //# sourceMappingURL=sphere.d.ts.map