gpu-curtains
Version:
gpu-curtains is a 3D WebGPU rendering engine. It can be used as a standalone 3D engine, but also includes extra classes focused on mapping 3d objects to DOM elements; It allows users to synchronize values such as position, sizing, or scale between them.
65 lines (64 loc) • 2.11 kB
TypeScript
import { Vec3 } from './Vec3';
import { Mat4 } from './Mat4';
/**
* Used to handle bounding boxes in 3D space.
* Basically made of two min and max {@link Vec3 | vectors} that represents the edges of the 3D bounding box.
*/
export declare class Box3 {
/** Min {@link Vec3 | vector} of the {@link Box3} */
min: Vec3;
/** Max {@link Vec3 | vector} of the {@link Box3} */
max: Vec3;
/**
* Box3 constructor
* @param min - min {@link Vec3 | vector} of the {@link Box3}
* @param max - max {@link Vec3 | vector} of the {@link Box3}
*/
constructor(min?: Vec3, max?: Vec3);
/**
* Set a {@link Box3} from two min and max {@link Vec3 | vectors}
* @param min - min {@link Vec3 | vector} of the {@link Box3}
* @param max - max {@link Vec3 | vector} of the {@link Box3}
*/
set(min?: Vec3, max?: Vec3): Box3;
/**
* Check whether the {@link Box3} min and max values have actually been set
*/
isEmpty(): boolean;
/**
* Copy a {@link Box3} into this {@link Box3}.
* @param box - {@link Box3} to copy
*/
copy(box: Box3): Box3;
/**
* Clone this {@link Box3}
* @returns - cloned {@link Box3}
*/
clone(): Box3;
/**
* Get the {@link Box3} center
* @readonly
* @returns - {@link Vec3 | center vector} of the {@link Box3}
*/
get center(): Vec3;
/**
* Get the {@link Box3} size
* @readonly
* @returns - {@link Vec3 | size vector} of the {@link Box3}
*/
get size(): Vec3;
/**
* Get the {@link Box3} radius
* @readonly
* @returns - radius of the {@link Box3}
*/
get radius(): number;
/**
* Apply a {@link Mat4 | matrix} to a {@link Box3}
* Useful to apply a transformation {@link Mat4 | matrix} to a {@link Box3}
* @param matrix - {@link Mat4 | matrix} to use
* @param transformedBox - {@link Box3 | transformed Box3} to set
* @returns - the {@link Box3 | transformed Box3} after {@link Mat4 | matrix} application
*/
applyMat4(matrix?: Mat4, transformedBox?: Box3): Box3;
}