BoundingBox — Aspose.3D FOSS for Python API Reference

Methods

BoundingBox on akselien suuntaama rajaava laatikko (AABB), joka määritellään kahdella Vector3 kulmalla: minimum (pienin x, y, z) ja maximum (suurin x, y, z). Sitä käytetään spatiaalisiin kyselyihin, kuten piste‑laatikko‑testiin, näkökentän leikkausapureihin ja kohtauksen tason koon arviointiin.

A BoundingBox voi olla null (tyhjä/alustamaton) tila, kun se luodaan ilman argumentteja. Kutsumalla merge() null-laatikossa alustaa sen ensimmäisestä annetusta pisteestä tai laatikosta.

Methods: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Methods

MethodsMethods
BoundingBox()Null (tyhjä) rajaava laatikko
BoundingBox(minimum, maximum)Rakentaa kahdesta Vector3 kulmasta
BoundingBox(min_x, min_y, min_z, max_x, max_y, max_z)Rakentaa kuudesta skalaarisesta arvosta

Methods

MethodsMethodsMethods
minimumVector3Kulma, jossa on pienimmät x-, y- ja z-arvot. Palauttaa (+inf, +inf, +inf) null-laatikolle
maximumVector3Kulma, jossa on suurimmat x-, y- ja z-arvot. Palauttaa (-inf, -inf, -inf) nullilaatikolle
centerVector3Keskipiste välillä minimum ja maximum; (0,0,0) nullilaatikolle
sizeVector3Akselin laajuus (maximum - minimum); (0,0,0) nullilaatikolle

Staattiset tehdasmenetelmät

MethodsPaluuarvon tyyppiMethods
BoundingBox.get_null()BoundingBoxPalauttaa nollan (tyhjän) raja-alueen
BoundingBox.get_infinite()BoundingBoxPalauttaa äärettömän raja-alueen, joka ulottuu koko avaruuteen

Instanssimetodit

MethodsPaluuarvon tyyppiMethods
merge(point)NoneLaajentaa laatikkoa sisällyttämään a Vector3, Vector4, tai toinen BoundingBox
merge(x, y, z)NoneLaajentaa laatikkoa sisällyttämään pisteen (x, y, z)
contains(point)boolMethods True jos Vector3 piste on sisällä tai rajan päällä
contains(box)boolMethods True jos box on kokonaan tämän laatikon sisällä
overlaps_with(box)boolMethods True jos kaksi laatikkoa leikkaavat
scale()floatPalauttaa suurimman itseisarvoisen koordinaattiarvon — hyödyllinen karkean kohtauksen mittakaavan arviona

Methods

from aspose.threed.utilities import BoundingBox, Vector3

# Build a bounding box from a list of points
bb = BoundingBox()
points = [
    Vector3(0.0, 0.0, 0.0),
    Vector3(1.0, 2.0, 3.0),
    Vector3(-1.0, 0.5, 1.5),
]
for p in points:
    bb.merge(p)

print(bb.minimum)   # Vector3(-1.0, 0.0, 0.0)
print(bb.maximum)   # Vector3(1.0, 2.0, 3.0)
print(bb.center)    # Vector3(0.0, 1.0, 1.5)
print(bb.size)      # Vector3(2.0, 2.0, 3.0)

# Point containment
print(bb.contains(Vector3(0.5, 1.0, 1.5)))   # True
print(bb.contains(Vector3(5.0, 0.0, 0.0)))   # False

# Box containment
inner = BoundingBox(Vector3(0, 0, 0), Vector3(0.5, 0.5, 0.5))
print(bb.contains(inner))   # True

# Overlap test
other = BoundingBox(Vector3(0.5, 0.5, 0.5), Vector3(2.0, 2.0, 2.0))
print(bb.overlaps_with(other))   # True

# Retrieve from a node
from aspose.threed import Scene
from aspose.threed.entities import Mesh
from aspose.threed.utilities import Vector4

scene = Scene()
mesh = Mesh()
mesh.control_points.append(Vector4(-1, 0, 0, 1))
mesh.control_points.append(Vector4( 1, 0, 0, 1))
mesh.control_points.append(Vector4( 0, 1, 0, 1))
mesh.create_polygon(0, 1, 2)
node = scene.root_node.create_child_node("tri", mesh)
node_bb = node.get_bounding_box()
print(node_bb.minimum)
print(node_bb.maximum)

Katso myös

 Suomi