UNPKG

pex-geom

Version:

Geometry intersection and bounding volume helpers for PEX.

63 lines (62 loc) 2.43 kB
/** * Creates a new ray * @returns {import("./types.js").ray} */ export function create(): import("./types.js").ray; /** * Determines if a ray intersect a plane and set intersection point * @see {@link https://www.cs.princeton.edu/courses/archive/fall00/cs426/lectures/raycast/sld017.htm} * @param {import("./types.js").ray} ray * @param {import("./types.js").plane} plane * @param {import("./types.js").vec3} out * @returns {number} */ export function hitTestPlane([origin, direction]: import("./types.js").ray, [point, normal]: import("./types.js").plane, out?: import("./types.js").vec3): number; /** * Determines if a ray intersect a triangle and set intersection point * @see {@link http://geomalgorithms.com/a06-_intersect-2.html#intersect3D_RayTriangle()} * @param {import("./types.js").ray} ray * @param {import("./types.js").triangle} triangle * @param {import("./types.js").vec3} out * @returns {number} */ export function hitTestTriangle([origin, direction]: import("./types.js").ray, [p0, p1, p2]: import("./types.js").triangle, out?: import("./types.js").vec3): number; /** * Determines if a ray intersect an AABB bounding box * @see {@link http://gamedev.stackexchange.com/questions/18436/most-efficient-aabb-vs-ray-collision-algorithms} * @param {import("./types.js").ray} ray * @param {import("./types.js").aabb} aabb * @returns {boolean} */ export function hitTestAABB([origin, direction]: import("./types.js").ray, aabb: import("./types.js").aabb): boolean; /** * Prints a plane to a string. * @param {import("./types.js").ray} a * @param {number} [precision=4] * @returns {string} */ export function toString(a: import("./types.js").ray, precision?: number): string; /** * Enum for different intersections values */ export type Intersections = number; /** * Enum for different intersections values * @readonly * @enum {number} */ export const Intersections: Readonly<{ Intersect: 1; NoIntersect: 0; SamePlane: -1; Parallel: -2; TriangleDegenerate: -2; }>; /** * Determines if a ray intersect an AABB bounding box * @see {@link http://gamedev.stackexchange.com/questions/18436/most-efficient-aabb-vs-ray-collision-algorithms} * @param {import("./types.js").ray} ray * @param {import("./types.js").aabb} aabb * @returns {boolean} */ export function intersectsAABB([origin, direction]: import("./types.js").ray, aabb: import("./types.js").aabb): boolean;