Class BoundingBox

Class BoundingBox

包:: @aspose/3d (v24.12.0)

BoundingBox 表示三维空间中的轴对齐包围盒 (AABB)。它存储一个 minimum 角点和一个 maximum corner 作为普通对象,带有 x, y, z 字段。新构造的 BoundingBox() 在没有参数的情况下处于 “null” 状态 — minimum 返回 +Infinitymaximum 返回 -Infinity — 并在通过添加点时正确展开 merge(). BoundingBox 从该导出 @aspose/3d/utilities 子路径。.

export class BoundingBox
import { 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

PropertiesProperties
new BoundingBox()创建一个空的边界框。 当…时展开 merge() 被调用。.
new BoundingBox(minimum, maximum)从两个 {x, y, z} 角点对象。.
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ)从六个标量分量创建盒子。.

静态属性

PropertiesPropertiesProperties
BoundingBox.nullBoundingBox一个空的边界框(无范围,未初始化)。.
BoundingBox.infiniteBoundingBox一个覆盖整个数字范围的框,从 -Infinity+Infinity.

Properties

重要命名:: BoundingBox 使用 minimummaximum — 不是 minmax.

PropertiesPropertiesProperties
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 每个轴。.
extentBoundingBoxExtent (只读)沿每个轴的半尺寸。每个字段是 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): void

Properties

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): boolean

Properties

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): boolean

scale()

返回所有角点的最大绝对坐标值,表示边界框的主尺度。返回 0 当框为 null 时。.

scale(): number

BoundingBoxExtent

BoundingBoxExtent 是由…返回的伴随类 BoundingBox.extent. 它在每个轴上存储半尺寸。.

PropertiesPropertiesProperties
extentXnumberX 方向的半宽度。.
extentYnumberY 方向的半高度。.
extentZnumberZ 方向的半深度。.
 中文