pex-geom
Version:
Geometry intersection and bounding volume helpers for PEX.
88 lines (87 loc) • 3.33 kB
TypeScript
/**
* Creates a new bounding box.
* @returns {import("./types.js").aabb}
*/
export function create(): import("./types.js").aabb;
/**
* Reset a bounding box.
* @param {import("./types.js").aabb} a
* @returns {import("./types.js").rect}
*/
export function empty(a: import("./types.js").aabb): import("./types.js").rect;
/**
* Copies a bounding box.
* @param {import("./types.js").aabb} a
* @returns {import("./types.js").aabb}
*/
export function copy(a: import("./types.js").aabb): import("./types.js").aabb;
/**
* Sets a bounding box to another.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").aabb} b
* @returns {import("./types.js").aabb}
*/
export function set(a: import("./types.js").aabb, b: import("./types.js").aabb): import("./types.js").aabb;
/**
* Checks if a bounding box is empty.
* @param {import("./types.js").aabb} a
* @returns {boolean}
*/
export function isEmpty(a: import("./types.js").aabb): boolean;
/**
* Updates a bounding box from a list of points.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").vec3[] | import("./types.js").TypedArray} points
* @returns {import("./types.js").aabb}
*/
export function fromPoints(a: import("./types.js").aabb, points: import("./types.js").vec3[] | import("./types.js").TypedArray): import("./types.js").aabb;
/**
* Returns a list of 8 points from a bounding box.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").vec3[]} [points]
* @returns {import("./types.js").vec3[]}
*/
export function getCorners(a: import("./types.js").aabb, points?: import("./types.js").vec3[]): import("./types.js").vec3[];
/**
* Returns the center of a bounding box.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").vec3} out
* @returns {import("./types.js").vec3}
*/
export function center(a: import("./types.js").aabb, out?: import("./types.js").vec3): import("./types.js").vec3;
/**
* Returns the size of a bounding box.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").vec3} out
* @returns {import("./types.js").vec3}
*/
export function size(a: import("./types.js").aabb, out?: import("./types.js").vec3): import("./types.js").vec3;
/**
* Checks if a point is inside a bounding box.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").vec3} p
* @returns {boolean}
*/
export function containsPoint(a: import("./types.js").aabb, [x, y, z]: import("./types.js").vec3): boolean;
/**
* Includes a bounding box in another.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").aabb} b
* @returns {import("./types.js").aabb}
*/
export function includeAABB(a: import("./types.js").aabb, b: import("./types.js").aabb): import("./types.js").aabb;
/**
* Includes a point in a bounding box.
* @param {import("./types.js").aabb} a
* @param {import("./types.js").vec3} p
* @param {number} [i=0] offset in the point array
* @returns {import("./types.js").vec3}
*/
export function includePoint(a: import("./types.js").aabb, p: import("./types.js").vec3, i?: number): import("./types.js").vec3;
/**
* Prints a bounding box to a string.
* @param {import("./types.js").aabb} a
* @param {number} [precision=4]
* @returns {string}
*/
export function toString(a: import("./types.js").aabb, precision?: number): string;