Class BoundingBox
Paquete: @aspose/3d (v24.12.0)
BoundingBox representa una caja delimitadora alineada a los ejes (AABB) en el espacio 3D. Almacena un minimum esquina y una maximum esquina como objetos simples con x, y, z campos. Un objeto recién construido BoundingBox() sin argumentos está en el estado “null” — minimum devuelve +Infinity y maximum devuelve -Infinity — y se expande correctamente cuando se añaden puntos mediante merge(). BoundingBox se exporta desde el @aspose/3d/utilities subruta.
export class BoundingBoximport { BoundingBox } from '@aspose/3d/utilities';ColladaSaveOptions
Calcular una caja delimitadora para un conjunto de puntos.
import { BoundingBox, Vector3 } from '@aspose/3d/utilities';
const points = [
new Vector3(-1, 0, -1),
new Vector3(1, 2, 1),
new Vector3(0, -0.5, 0),
];
const bbox = new BoundingBox();
for (const p of points) {
bbox.merge(p);
}
console.log(`Min: (${bbox.minimum.x}, ${bbox.minimum.y}, ${bbox.minimum.z})`);
// Min: (-1, -0.5, -1)
console.log(`Max: (${bbox.maximum.x}, ${bbox.maximum.y}, ${bbox.maximum.z})`);
// Max: (1, 2, 1)
const c = bbox.center;
console.log(`Center: (${c.x}, ${c.y.toFixed(3)}, ${c.z})`);
// Center: (0, 0.750, 0)
ColladaSaveOptions
| ColladaSaveOptions | ColladaSaveOptions |
|---|---|
new BoundingBox() | Crea una caja delimitadora nula. Se expande cuando merge() se llama. |
new BoundingBox(minimum, maximum) | Crea una caja a partir de dos {x, y, z} objetos de esquina. |
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ) | Crea una caja a partir de seis componentes escalares. |
Propiedades estáticas
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
BoundingBox.null | BoundingBox | Una caja delimitadora nula (sin extensión, no inicializada). |
BoundingBox.infinite | BoundingBox | Una caja que abarca todo el rango numérico desde -Infinity hasta +Infinity. |
ColladaSaveOptions
Nomenclatura importante: BoundingBox usa minimum y maximum — no min y max.
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
minimum | {x: number, y: number, z: number} (solo lectura) | La esquina con los valores más pequeños de x, y, z. Devuelve +Infinity en cada eje cuando la caja es nula. |
maximum | {x: number, y: number, z: number} (solo lectura) | La esquina con los valores más grandes de x, y, z. Devuelve -Infinity en cada eje cuando la caja es nula. |
center | {x: number, y: number, z: number} (solo lectura) | El centro geométrico, calculado como (minimum + maximum) / 2. Devuelve (0, 0, 0) cuando es nula. |
size | {x: number, y: number, z: number} (solo lectura) | Las dimensiones de la caja: maximum - minimum por eje. |
extent | BoundingBoxExtent (solo lectura) | Mitades de extensión a lo largo de cada eje. Cada campo es Math.abs(size / 2). |
ColladaSaveOptions
merge(point)
Expande la caja delimitadora para incluir un punto. Acepta un {x, y, z} objeto, un Vector3, una matriz de 3 números, o tres valores separados (x, y, z) argumentos.
merge(point: Vector3 | {x: number, y: number, z: number}): void
merge(x: number, y: number, z: number): voidColladaSaveOptions
import { BoundingBox, Vector3 } from '@aspose/3d/utilities';
const bb = new BoundingBox();
bb.merge(new Vector3(2, 3, 4));
bb.merge(-1, 0, 0);
console.log(`Min X: ${bb.minimum.x}`); // Min X: -1
console.log(`Max Y: ${bb.maximum.y}`); // Max Y: 3
contains(arg)
ColladaSaveOptions true si el punto o cuadro delimitador dado está completamente dentro de esta caja. Acepta un {x, y, z} objeto de punto, un Vector3, o otro BoundingBox.
contains(arg: Vector3 | {x: number, y: number, z: number} | BoundingBox): booleanColladaSaveOptions
import { BoundingBox, Vector3 } from '@aspose/3d/utilities';
const bb = new BoundingBox(-1, -1, -1, 1, 1, 1);
console.log(bb.contains(new Vector3(0, 0, 0))); // true
console.log(bb.contains(new Vector3(2, 0, 0))); // false
overlapsWith(box)
ColladaSaveOptions true si este cuadro delimitador se superpone con otro BoundingBox (los bordes que se tocan cuentan como superposición).
overlapsWith(box: BoundingBox): booleanscale()
Devuelve el valor absoluto máximo de coordenada en todas las esquinas, representando la escala dominante del cuadro delimitador. Devuelve 0 cuando la caja es nula.
scale(): numberBoundingBoxExtent
BoundingBoxExtent es una clase compañera devuelta por BoundingBox.extent. Almacena medias extensiones a lo largo de cada eje.
| ColladaSaveOptions | ColladaSaveOptions | ColladaSaveOptions |
|---|---|---|
extentX | number | Media anchura a lo largo del eje X. |
extentY | number | Media altura a lo largo del eje Y. |
extentZ | number | Media profundidad a lo largo del eje Z. |