BoundingBox

Methods

BoundingBox adalah sebuah axis-aligned bounding box (AABB) yang didefinisikan oleh dua Vector3 sudut: minimum (x, y, z terendah) dan maximum (x, y, z tertinggi). Ini digunakan untuk kueri spasial seperti tes titik‑dalam‑kotak, bantuan frustum culling, dan estimasi ukuran pada tingkat scene.

Sebuah BoundingBox dapat berada dalam sebuah null (kosong/belum diinisialisasi) state ketika dibuat tanpa argumen. Memanggil merge() pada kotak null menginisialisasinya dari titik atau kotak pertama yang diberikan.

Methods: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Methods

MethodsMethods
BoundingBox()Kotak pembatas Null (kosong)
BoundingBox(minimum, maximum)Membuat dari dua Vector3 sudut
BoundingBox(min_x, min_y, min_z, max_x, max_y, max_z)Membuat dari enam nilai skalar

Methods

MethodsMethodsMethods
minimumVector3Sudut dengan nilai x, y, z terkecil. Mengembalikan (+inf, +inf, +inf) untuk kotak null
maximumVector3Sudut dengan nilai x, y, z terbesar. Mengembalikan (-inf, -inf, -inf) untuk null box
centerVector3Titik tengah antara minimum dan maximum; (0,0,0) untuk null box
sizeVector3Jangkauan per sumbu (maximum - minimum); (0,0,0) untuk kotak null

Metode Pabrik Statis

MethodsTipe PengembalianMethods
BoundingBox.get_null()BoundingBoxMengembalikan kotak pembatas null (kosong)
BoundingBox.get_infinite()BoundingBoxMengembalikan kotak pembatas tak terhingga yang meliputi seluruh ruang

Metode Instansi

MethodsTipe PengembalianMethods
merge(point)NoneMemperluas kotak untuk menyertakan sebuah Vector3, Vector4, atau yang lain BoundingBox
merge(x, y, z)NoneMemperluas kotak untuk menyertakan titik (x, y, z)
contains(point)boolMethods True jika Vector3 titik berada di dalam atau pada batas
contains(box)boolMethods True jika box sepenuhnya berada dalam kotak ini
overlaps_with(box)boolMethods True jika dua kotak tersebut berpotongan
scale()floatMengembalikan nilai koordinat absolut terbesar — berguna sebagai perkiraan skala adegan secara kasar

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)

Lihat Juga

 Bahasa Indonesia