import { type ReadonlyVec, type Vec } from "@thi.ng/vectors/api"; import type { Attribs } from "./api.js"; import { AABB } from "./api/aabb.js"; import type { Sphere } from "./api/sphere.js"; /** * 3D shape factory. Creates a new axis-aligned bounding box, where `pos` is the * min. position and `size` the extent in each dimension.. * * @param pos * @param size * @param attribs */ export declare function aabb(pos: Vec, size: number | Vec, attribs?: Attribs): AABB; export declare function aabb(size: number | Vec, attribs?: Attribs): AABB; export declare function aabb(attribs?: Attribs): AABB; /** * 3D shape factory. Creates a new axis-aligned bounding box between given * `min`/`max` points. * * @param min * @param max * @param attribs */ export declare const aabbFromMinMax: (min: Vec, max: Vec, attribs?: Attribs) => AABB; /** * Same as {@link aabbFromMinMax}, but enlarges box in all directions by * `margin`. * * @param min * @param max * @param margin * @param attribs */ export declare const aabbFromMinMaxWithMargin: (min: Vec, max: Vec, margin: number, attribs?: Attribs) => AABB; export declare const aabbFromCentroid: (centroid: Vec, size: Vec, attribs?: Attribs) => AABB; export declare const aabbWithCentroidAndMargin: (centroid: Vec, size: Vec, margin: number, attribs?: Attribs) => AABB; /** * Returns the intersection AABB of given inputs or `undefined` if they * are non-overlapping. * * @param a - * @param b - */ export declare const intersectionAABB: (a: AABB, b: AABB) => AABB | undefined; /** * Returns square inscribed in given circle instance. The circle can also be * given as centroid & radius. * * @param sphere - target sphere */ export declare function inscribedAABB(sphere: Sphere): AABB; export declare function inscribedAABB(pos: ReadonlyVec, r: number): AABB; //# sourceMappingURL=aabb.d.ts.map