UNPKG

pex-geom

Version:

Geometry intersection and bounding volume helpers for PEX.

147 lines (146 loc) 5.42 kB
/** * Creates a new rectangle. * @returns {import("./types.js").rect} */ export function create(): import("./types.js").rect; /** * Reset a rectangle. * @param {import("./types.js").rect} a * @returns {import("./types.js").rect} */ export function empty(a: import("./types.js").rect): import("./types.js").rect; /** * Copies a rectangle. * @param {import("./types.js").rect} a * @returns {import("./types.js").rect} */ export function copy(a: import("./types.js").rect): import("./types.js").rect; /** * Sets a rectangle to another. * @param {import("./types.js").rect} a * @param {import("./types.js").rect} b * @returns {import("./types.js").rect} */ export function set(a: import("./types.js").rect, b: import("./types.js").rect): import("./types.js").rect; /** * Checks if a rectangle is empty. * @param {import("./types.js").rect} a * @returns {boolean} */ export function isEmpty(a: import("./types.js").rect): boolean; /** * Updates a rectangle from a list of points. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2[] | import("./types.js").TypedArray} points * @returns {import("./types.js").rect} */ export function fromPoints(a: import("./types.js").rect, points: import("./types.js").vec2[] | import("./types.js").TypedArray): import("./types.js").rect; /** * Returns a list of 4 points from a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2[]} points * @returns {import("./types.js").vec2[]} */ export function getCorners(a: import("./types.js").rect, points?: import("./types.js").vec2[]): import("./types.js").vec2[]; /** * Scales a rectangle. * @param {import("./types.js").rect} a * @param {number} n * @returns {import("./types.js").rect} */ export function scale(a: import("./types.js").rect, n: number): import("./types.js").rect; /** * Sets the size of a rectangle using width and height. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} size * @returns {import("./types.js").rect} */ export function setSize(a: import("./types.js").rect, size: import("./types.js").vec2): import("./types.js").rect; /** * Returns the size of a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} out * @returns {import("./types.js").vec2} */ export function size(a: import("./types.js").rect, out?: import("./types.js").vec2): import("./types.js").vec2; /** * Returns the width of a rectangle. * @param {import("./types.js").rect} a * @returns {number} */ export function width(a: import("./types.js").rect): number; /** * Returns the height of a rectangle. * @param {import("./types.js").rect} a * @returns {number} */ export function height(a: import("./types.js").rect): number; /** * Returns the aspect ratio of a rectangle. * @param {import("./types.js").rect} a * @returns {number} */ export function aspectRatio(a: import("./types.js").rect): number; /** * Sets the position of a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} p * @returns {import("./types.js").rect} */ export function setPosition(a: import("./types.js").rect, [x, y]: import("./types.js").vec2): import("./types.js").rect; /** * Returns the center of a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} out * @returns {import("./types.js").rect} */ export function center(a: import("./types.js").rect, out?: import("./types.js").vec2): import("./types.js").rect; /** * Checks if a point is inside a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} p * @returns {boolean} */ export function containsPoint(a: import("./types.js").rect, [x, y]: import("./types.js").vec2): boolean; /** * Checks if a rectangle is inside another rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").rect} b * @returns {boolean} */ export function containsRect(a: import("./types.js").rect, b: import("./types.js").rect): boolean; /** * Includes a point in a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} p * @returns {import("./types.js").rect} */ export function includePoint(a: import("./types.js").rect, [x, y]: import("./types.js").vec2): import("./types.js").rect; /** * Includes a rectangle in another rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").rect} b * @returns {import("./types.js").rect} */ export function includeRect(a: import("./types.js").rect, b: import("./types.js").rect): import("./types.js").rect; /** * Maps a point into the dimensions of a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} p * @returns {import("./types.js").vec2} */ export function mapPoint(a: import("./types.js").rect, p: import("./types.js").vec2): import("./types.js").vec2; /** * Clamps a point into the dimensions of a rectangle. * @param {import("./types.js").rect} a * @param {import("./types.js").vec2} p * @returns {import("./types.js").vec2} */ export function clampPoint(a: import("./types.js").rect, p: import("./types.js").vec2): import("./types.js").vec2; /** * Prints a rect to a string. * @param {import("./types.js").rect} a * @param {number} [precision=4] * @returns {string} */ export function toString(a: import("./types.js").rect, precision?: number): string;