Class BoundingBox
Class BoundingBox
包:: @aspose/3d (v24.12.0)
BoundingBox 表示三维空间中的轴对齐包围盒 (AABB)。它存储一个 minimum 角点和一个 maximum corner 作为普通对象,带有 x, y, z 字段。新构造的 BoundingBox() 在没有参数的情况下处于 “null” 状态 — minimum 返回 +Infinity 和 maximum 返回 -Infinity — 并在通过添加点时正确展开 merge(). BoundingBox 从该导出 @aspose/3d/utilities 子路径。.
export class BoundingBoximport { BoundingBox } from '@aspose/3d/utilities';Properties
为一组点计算包围盒。.
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)
Properties
| Properties | Properties |
|---|---|
new BoundingBox() | 创建一个空的边界框。 当…时展开 merge() 被调用。. |
new BoundingBox(minimum, maximum) | 从两个 {x, y, z} 角点对象。. |
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ) | 从六个标量分量创建盒子。. |
静态属性
| Properties | Properties | Properties |
|---|---|---|
BoundingBox.null | BoundingBox | 一个空的边界框(无范围,未初始化)。. |
BoundingBox.infinite | BoundingBox | 一个覆盖整个数字范围的框,从 -Infinity 到 +Infinity. |
Properties
重要命名:: BoundingBox 使用 minimum 和 maximum — 不是 min 和 max.
| Properties | Properties | Properties |
|---|---|---|
minimum | {x: number, y: number, z: number} (只读) | 具有最小 x、y、z 值的角点。返回 +Infinity 当盒子为 null 时,在每个轴上。. |
maximum | {x: number, y: number, z: number} (只读) | 具有最大 x、y、z 值的角点。返回 -Infinity 当盒子为 null 时,在每个轴上。. |
center | {x: number, y: number, z: number} (只读) | 几何中心,计算方式为 (minimum + maximum) / 2. 返回 (0, 0, 0) 当为 null 时。. |
size | {x: number, y: number, z: number} (只读) | 盒子的尺寸:: maximum - minimum 每个轴。. |
extent | BoundingBoxExtent (只读) | 沿每个轴的半尺寸。每个字段是 Math.abs(size / 2). |
Properties
merge(point)
将边界框扩展以包含一个点。接受一个 {x, y, z} 对象,一个 Vector3, 一个包含3个数字的数组,或三个单独的 (x, y, z) 参数。.
merge(point: Vector3 | {x: number, y: number, z: number}): void
merge(x: number, y: number, z: number): voidProperties
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)
Properties true 如果给定的点或边界框完全位于此框内部。接受一个 {x, y, z} 点对象,一个 Vector3,,或另一个 BoundingBox.
contains(arg: Vector3 | {x: number, y: number, z: number} | BoundingBox): booleanProperties
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)
Properties true 如果此边界框与另一个重叠 BoundingBox (接触的边缘也算作重叠)。.
overlapsWith(box: BoundingBox): booleanscale()
返回所有角点的最大绝对坐标值,表示边界框的主尺度。返回 0 当框为 null 时。.
scale(): numberBoundingBoxExtent
BoundingBoxExtent 是由…返回的伴随类 BoundingBox.extent. 它在每个轴上存储半尺寸。.
| Properties | Properties | Properties |
|---|---|---|
extentX | number | X 方向的半宽度。. |
extentY | number | Y 方向的半高度。. |
extentZ | number | Z 方向的半深度。. |