BoundingBox — Aspose.3D FOSS for Python API Reference

Enumerations

BoundingBox adalah 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 point-in-box, bantuan frustum culling, dan estimasi ukuran pada level scene.

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

Enumerations: aspose.threed.utilities

from aspose.threed.utilities import BoundingBox, Vector3

Enumerations

EnumerationsEnumerations
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

Enumerations

EnumerationsEnumerationsEnumerations
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

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

Metode Instansi

EnumerationsTipe PengembalianEnumerations
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)boolEnumerations True jika Vector3 titik berada di dalam atau pada batas
contains(box)boolEnumerations True jika box sepenuhnya berada dalam kotak ini
overlaps_with(box)boolEnumerations True jika dua kotak tersebut berpotongan
scale()floatMengembalikan nilai koordinat absolut terbesar — berguna sebagai perkiraan skala adegan secara kasar

Enumerations

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)

Lihat Juga

 Bahasa Indonesia