BoundingBox — Aspose.3D FOSS for Python API Reference

Methods

BoundingBox ir axis-aligned bounding box (AABB), kas definēta ar divām Vector3 stūri: minimum (zemākais x, y, z) un maximum (augstākais x, y, z). To tiek izmantots telpisko vaicājumu veikšanai, piemēram, punktu‑iekļaušanas kastē testiem, redzes lauka izgriešanas palīglīdzekļiem un ainas līmeņa izmēra novērtēšanai.

A BoundingBox var būt null (tukša/neinicializēta) stāvoklī, ja izveidots bez argumentiem. Izsaucot merge() uz nulles kasti inicializē to no pirmā norādītā punkta vai kastes.

Methods: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Methods

MethodsMethods
BoundingBox()Null (tukša) robežkaste
BoundingBox(minimum, maximum)Izveido no divām Vector3 stūri
BoundingBox(min_x, min_y, min_z, max_x, max_y, max_z)Izveido no sešām skalārajām vērtībām

Methods

MethodsMethodsMethods
minimumVector3Stūris ar mazākajām x, y, z vērtībām. Atgriež (+inf, +inf, +inf) nulles kastei
maximumVector3Stūris ar lielākajām x, y, z vērtībām. Atgriež (-inf, -inf, -inf) nulles kastei
centerVector3Viduspunkts starp minimum un maximum; (0,0,0) nulles kastei
sizeVector3Izmērs pa asīm (maximum - minimum); (0,0,0) nulles kastei

Statiskās ražotnes metodes

MethodsAtgriešanas tipsMethods
BoundingBox.get_null()BoundingBoxAtgriež nulles (tukšu) robežkasti
BoundingBox.get_infinite()BoundingBoxAtgriež bezgalīgu robežkasti, kas aptver visu telpu

Instanču metodes

MethodsAtgriešanas tipsMethods
merge(point)NonePaplašina kasti, lai iekļautu a Vector3, Vector4, vai cits BoundingBox
merge(x, y, z)NonePaplašina lodziņu, lai iekļautu punktu (x, y, z)
contains(point)boolMethods True ja Vector3 punkts ir iekšā vai uz robežas
contains(box)boolMethods True ja box ir pilnīgi iekļauts šajā kastē
overlaps_with(box)boolMethods True ja divas kastes krustojas
scale()floatAtgriež lielāko absolūto koordinātu vērtību — noderīgi kā aptuvens ainas mēroga novērtējums

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)

Skatīt arī

 Latviešu