Class BoundingBox

Class BoundingBox

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

BoundingBox repräsentiert eine achsenorientierte Begrenzungsbox (AABB) im 3D-Raum. Sie speichert ein minimum Ecke und ein maximum Ecke als einfache Objekte mit x, y, z Felder. Ein neu erstelltes BoundingBox() ohne Argumente befindet sich im “null”-Zustand — minimum gibt zurück +Infinity und maximum gibt zurück -Infinity — und erweitert sich korrekt, wenn Punkte hinzugefügt werden über merge(). BoundingBox wird exportiert aus dem @aspose/3d/utilities Unterpfad.

export class BoundingBox
import { BoundingBox } from '@aspose/3d/utilities';

Enumerations

Berechne einen Begrenzungsrahmen für eine Menge von Punkten.

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)

Enumerations

EnumerationsEnumerations
new BoundingBox()Erstellt eine Null-Bounding-Box. Erweitert sich, wenn merge() aufgerufen wird.
new BoundingBox(minimum, maximum)Erstellt eine Box aus zwei {x, y, z} Eckobjekten.
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ)Erstellt eine Box aus sechs skalaren Komponenten.

Statische Eigenschaften

EnumerationsEnumerationsEnumerations
BoundingBox.nullBoundingBoxEine Null-Bounding-Box (keine Ausdehnung, nicht initialisiert).
BoundingBox.infiniteBoundingBoxEine Box, die den gesamten Zahlenbereich von -Infinity bis +Infinity.

Enumerations

Wichtige Benennung: BoundingBox verwendet minimum und maximum — nicht min und max.

EnumerationsEnumerationsEnumerations
minimum{x: number, y: number, z: number} (schreibgeschützt)Die Ecke mit den kleinsten x-, y- und z-Werten. Gibt zurück +Infinity auf jeder Achse, wenn die Box null ist.
maximum{x: number, y: number, z: number} (schreibgeschützt)Die Ecke mit den größten x-, y- und z-Werten. Gibt zurück -Infinity auf jeder Achse, wenn die Box null ist.
center{x: number, y: number, z: number} (schreibgeschützt)Der geometrische Mittelpunkt, berechnet als (minimum + maximum) / 2. Gibt zurück (0, 0, 0) wenn null.
size{x: number, y: number, z: number} (schreibgeschützt)Die Abmessungen der Box: maximum - minimum pro Achse.
extentBoundingBoxExtent (schreibgeschützt)Halb-Extents entlang jeder Achse. Jedes Feld ist Math.abs(size / 2).

Enumerations

merge(point)

Erweitert die Begrenzungsbox, um einen Punkt einzuschließen. Akzeptiert ein {x, y, z} Objekt, ein Vector3, ein Array von 3 Zahlen, oder drei separate (x, y, z) Argumente.

merge(point: Vector3 | {x: number, y: number, z: number}): void
merge(x: number, y: number, z: number): void

Enumerations

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)

Enumerations true wenn der gegebene Punkt oder die Begrenzungsbox vollständig innerhalb dieser Box liegt. Akzeptiert ein {x, y, z} Punktobjekt, ein Vector3, oder ein weiteres BoundingBox.

contains(arg: Vector3 | {x: number, y: number, z: number} | BoundingBox): boolean

Enumerations

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)

Enumerations true wenn diese Begrenzungsbox mit einer anderen überlappt BoundingBox (berührende Kanten zählen als Überlappung).

overlapsWith(box: BoundingBox): boolean

scale()

Gibt den maximalen absoluten Koordinatenwert über alle Ecken zurück, der die dominante Skalierung der Begrenzungsbox darstellt. Gibt 0 wenn die Box null ist.

scale(): number

BoundingBoxExtent

BoundingBoxExtent ist eine Begleitklasse, die zurückgegeben wird von BoundingBox.extent. Es speichert Halbabmessungen entlang jeder Achse.

EnumerationsEnumerationsEnumerations
extentXnumberHalbe Breite entlang X.
extentYnumberHalbe Höhe entlang Y.
extentZnumberHalbe Tiefe entlang Z.
 Deutsch