UNPKG

pex-geom

Version:

Geometry intersection and bounding volume helpers for PEX.

88 lines (87 loc) 3.33 kB
/** * 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;