Class BoundingBox

Class BoundingBox

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

BoundingBox repræsenterer en aksejusteret indkapslingsboks (AABB) i 3D-rum. Den gemmer en minimum hjørne og en maximum hjørne som simple objekter med x, y, z felter. En nyoprettet BoundingBox() med ingen argumenter er i “null”-tilstand — minimum returnerer +Infinity og maximum returnerer -Infinity — og udvider korrekt når punkter tilføjes via merge(). BoundingBox eksporteres fra @aspose/3d/utilities understi.

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

Enumerations

Beregn en afgrænsningsboks for et sæt af punkter.

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()Opretter en null-indkapslingsboks. Udvider når merge() kaldes.
new BoundingBox(minimum, maximum)Opretter en boks ud fra to {x, y, z} hjørneobjekter.
new BoundingBox(minX, minY, minZ, maxX, maxY, maxZ)Opretter en boks ud fra seks skalære komponenter.

Statiske egenskaber

EnumerationsEnumerationsEnumerations
BoundingBox.nullBoundingBoxEn nul begrænsningsboks (ingen udstrækning, ikke initialiseret).
BoundingBox.infiniteBoundingBoxEn boks, der spænder over hele talområdet fra -Infinity til +Infinity.

Enumerations

Vigtig navngivning: BoundingBox bruger minimum og maximum — ikke min og max.

EnumerationsEnumerationsEnumerations
minimum{x: number, y: number, z: number} (kun læse)Hjørnet med de mindste x-, y- og z-værdier. Returnerer +Infinity på hver akse, når boksen er null.
maximum{x: number, y: number, z: number} (kun læse)Hjørnet med de største x-, y- og z-værdier. Returnerer -Infinity på hver akse, når boksen er null.
center{x: number, y: number, z: number} (kun læse)Det geometriske centrum, beregnet som (minimum + maximum) / 2. Returnerer (0, 0, 0) når null.
size{x: number, y: number, z: number} (skrivebeskyttet)Dimensionerne på boksen: maximum - minimum pr. akse.
extentBoundingBoxExtent (skrivebeskyttet)Halv-udstrækninger langs hver akse. Hvert felt er Math.abs(size / 2).

Enumerations

merge(point)

Udvider den afgrænsningsboks til at inkludere et punkt. Accepterer en {x, y, z} objekt, en Vector3, et array af 3 tal, eller tre separate (x, y, z) argumenter.

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 hvis det givne punkt eller den afgrænsningsboks er helt inden i denne boks. Accepterer en {x, y, z} punktobjekt, en Vector3, eller en anden 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 hvis denne afgrænsningsboks overlapper med en anden BoundingBox (berørende kanter tæller som overlappende).

overlapsWith(box: BoundingBox): boolean

scale()

Returnerer den maksimale absolutte koordinatværdi på tværs af alle hjørner, som repræsenterer den dominerende skala for afgrænsningsboksen. Returnerer 0 når boksen er null.

scale(): number

BoundingBoxExtent

BoundingBoxExtent er en ledsagende klasse returneret af BoundingBox.extent. Den gemmer halv-udstrækninger langs hver akse.

EnumerationsEnumerationsEnumerations
extentXnumberHalv bredde langs X.
extentYnumberHalv højde langs Y.
extentZnumberHalv dybde langs Z.
 Dansk