BoundingBox — Aspose.3D FOSS for Python API Reference

Methods

BoundingBox est une boîte englobante alignée sur les axes (AABB) définie par deux Vector3 coins : minimum (x, y, z les plus bas) et maximum (x, y, z les plus élevés). Elle est utilisée pour des requêtes spatiales telles que les tests point‑dans‑boîte, les aides au culling de frustum, et l’estimation de taille au niveau de la scène.

Une BoundingBox peut être dans un nul (état vide/non initialisé) lorsqu’elle est créée sans arguments. Appeler merge() sur une boîte nulle initialise celle‑ci à partir du premier point ou boîte fourni.

Methods: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Methods

MethodsMethods
BoundingBox()Boîte englobante nulle (vide)
BoundingBox(minimum, maximum)Construit à partir de deux Vector3 coins
BoundingBox(min_x, min_y, min_z, max_x, max_y, max_z)Construit à partir de six valeurs scalaires

Methods

MethodsMethodsMethods
minimumVector3Le coin avec les plus petites valeurs x, y, z. Retourne (+inf, +inf, +inf) pour une boîte nulle
maximumVector3Le coin avec les plus grandes valeurs x, y, z. Retourne (-inf, -inf, -inf) pour une boîte nulle
centerVector3Point médian entre minimum et maximum; (0,0,0) pour une boîte nulle
sizeVector3Étendue par axe (maximum - minimum); (0,0,0) pour une boîte nulle

Méthodes de fabrique statiques

MethodsType de retourMethods
BoundingBox.get_null()BoundingBoxRenvoie une boîte englobante nulle (vide)
BoundingBox.get_infinite()BoundingBoxRenvoie une boîte englobante infinie couvrant tout l’espace

Méthodes d’instance

MethodsType de retourMethods
merge(point)NoneÉtend la boîte pour inclure un Vector3, Vector4, ou un autre BoundingBox
merge(x, y, z)NoneÉtend la boîte pour inclure le point (x, y, z)
contains(point)boolMethods True si le Vector3 le point est à l’intérieur ou sur la frontière
contains(box)boolMethods True si box est entièrement à l’intérieur de cette boîte
overlaps_with(box)boolMethods True si les deux boîtes s’entrecroisent
scale()floatRenvoie la plus grande valeur absolue de coordonnées — utile comme estimation approximative de l’échelle de la scène

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)

Voir aussi

 Français