BoundingBox

Methods

BoundingBox एक axis-aligned bounding box (AABB) दो द्वारा परिभाषित है Vector3 कोनों: minimum (lowest x, y, z) और maximum (highest x, y, z). यह spatial queries जैसे point-in-box tests, frustum culling helpers, और scene-level size estimation के लिए उपयोग किया जाता है।.

एक BoundingBox एक में हो सकता है null (empty/uninitialised) स्थिति जब बिना तर्कों के बनाया जाता है। कॉलिंग merge() null बॉक्स पर इसे प्रदान किए गए पहले बिंदु या बॉक्स से प्रारंभ करता है।.

Methods: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Methods

MethodsMethods
BoundingBox()Null (empty) बाउंडिंग बॉक्स
BoundingBox(minimum, maximum)दो से बनाता है Vector3 कोनों
BoundingBox(min_x, min_y, min_z, max_x, max_y, max_z)छह स्केलर मानों से बनाता है

Methods

MethodsMethodsMethods
minimumVector3सबसे छोटे x, y, z मानों वाला कोना। लौटाता है (+inf, +inf, +inf) null बॉक्स के लिए
maximumVector3सबसे बड़े x, y, z मानों वाला कोना। लौटाता है (-inf, -inf, -inf) null बॉक्स के लिए
centerVector3के बीच मध्य बिंदु minimum और maximum; (0,0,0) null बॉक्स के लिए
sizeVector3प्रत्येक अक्ष पर विस्तार (maximum - minimum); (0,0,0) null बॉक्स के लिए

Static Factory Methods

Methodsरिटर्न प्रकारMethods
BoundingBox.get_null()BoundingBoxएक null (खाली) बाउंडिंग बॉक्स लौटाता है
BoundingBox.get_infinite()BoundingBoxसभी स्थान को कवर करने वाला अनंत बाउंडिंग बॉक्स लौटाता है

Instance Methods

Methodsरिटर्न प्रकारMethods
merge(point)Noneबॉक्स को विस्तारित करता है ताकि इसमें एक Vector3, Vector4, या दूसरा BoundingBox
merge(x, y, z)Noneबॉक्स को बिंदु को शामिल करने के लिए विस्तारित करता है (x, y, z)
contains(point)boolMethods True यदि Vector3 बिंदु बॉक्स के अंदर या सीमा पर है
contains(box)boolMethods True यदि box पूरी तरह से इस बॉक्स के भीतर है
overlaps_with(box)boolMethods True यदि दो बॉक्स आपस में प्रतिच्छेदित होते हैं
scale()floatसबसे बड़ा निरपेक्ष निर्देशांक मान लौटाता है — मोटे तौर पर सीन स्केल का अनुमान लगाने में उपयोगी

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()
# Use _control_points to mutate the backing list (control_points returns a copy)
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)

संबंधित देखें

 हिन्दी