@thi.ng/geom
Version:
Functional, polymorphic API for 2D geometry types & SVG generation
53 lines • 1.87 kB
TypeScript
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