three.js OBB

2023-02-16 17:51 更新

表示 3D 空間中的定向邊界框 (OBB)。

示例

webgl_math_obb

構造函數

OBB( center : Vector3, halfSize : Vector3, rotation : Matrix3 )

center — OBB 的中心。 (可選的)

halfSize — OBB 沿每個軸的正半寬范圍。 (可選的)

rotation — OBB 的旋轉。 (可選的)

創(chuàng)建一個新的 OBB。

屬性

.center : Vector3

OBB 的中心。默認為 ( 0, 0, 0 )。

.halfSize : Vector3

OBB 沿每個軸的正半寬范圍。默認為 ( 0, 0, 0 )。

.rotation : Matrix3

OBB 的旋轉。默認為單位矩陣。

方法

.applyMatrix4 ( matrix : Matrix4 ) : this

matrix — 一個 4x4 變換矩陣。

將給定的轉換矩陣應用于此 OBB。此方法可用于使用 3D 對象的世界矩陣轉換邊界體積,以便使兩個實體保持同步。

.clampPoint ( point : Vector3, clampedPoint : Vector3 ) : Vector3

point — 應夾在該 OBB 范圍內的點。

clampedPoint — 結果將被復制到這個向量中。

將給定點限制在該 OBB 的范圍內。

.clone () : OBB

為此實例創(chuàng)建一個克隆的 OBB。

.containsPoint ( point : Vector3 ) : Boolean

point — 要測試的點。

給定點是否位于此 OBB 內。

.copy ( obb : OBB ) : this

obb — 要復制的 OBB。

將給定 OBB 的屬性復制到此 OBB。

.equals ( obb : OBB ) : Boolean

obb — 要測試的 OBB。

給定的 OBB 是否等于此 OBB。

.fromBox3 ( box3 : Box3 ) : this

box3 — AABB。

根據給定的 AABB 定義一個 OBB。

.getSize ( size : Vector3 ) : Vector3

size — 結果將被復制到這個向量中。

將此 OBB 的大小返回到給定向量中。

.intersectsBox3 ( box3 : Box3 ) : Boolean

box3 — AABB 進行測試。

給定的 AABB 是否與該 OBB 相交。

.intersectsSphere ( sphere : Sphere ) : Boolean

sphere — 要測試的邊界球體。

給定的邊界球體是否與該 OBB 相交。

.intersectsOBB ( obb : OBB, epsilon : Number ) : Boolean

obb — 要測試的 OBB。

epsilon — 用于抵消算術錯誤的可選數值。默認值為 Number.EPSILON。

給定的 OBB 是否與該 OBB 相交。

.intersectsRay ( ray : Ray ) : Boolean

ray — 要測試的射線。

給定的射線是否與該 OBB 相交。

.intersectRay ( ray : Ray, intersectionPoint : Vector3 ) : Vector3

ray — 要測試的射線。

intersectionPoint — 結果將被復制到這個向量中。

執(zhí)行 Ray/OBB 相交測試并將交點存儲到給定的 3D 矢量。如果未檢測到交集,則返回 null。

.set ( center : Vector3, halfSize : Vector3, rotation : Matrix3 ) : this

center — OBB 的中心。

halfSize — OBB 沿每個軸的正半寬范圍。

rotation — OBB 的旋轉。

定義給定值的 OBB。

源碼

examples/jsm/math/OBB.js


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號