35 lines
708 B
Markdown
35 lines
708 B
Markdown
# OBB::Intersects (OBB)
|
||
|
||
```cpp
|
||
bool Intersects(const OBB& other) const;
|
||
```
|
||
|
||
检测该 OBB 与另一个 OBB 是否相交。采用分离轴定理(SAT)进行检测,通过测试 15 条可能的分离轴来判断两个盒子是否重叠。
|
||
|
||
**参数:**
|
||
- `other` - 另一个 OBB 包围盒
|
||
|
||
**返回:** 两 OBB 相交返回 `true`,否则返回 `false`
|
||
|
||
**异常:** 无
|
||
|
||
**线程安全:** ✅
|
||
|
||
**复杂度:** O(1)
|
||
|
||
**示例:**
|
||
|
||
```cpp
|
||
#include "AABB.h"
|
||
#include "Vector3.h"
|
||
#include "Matrix4.h"
|
||
|
||
using namespace XCEngine::Math;
|
||
|
||
OBB obb1(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.5f, 1.0f));
|
||
OBB obb2(Vector3(1.5f, 0.0f, 0.0f), Vector3(1.0f, 0.5f, 1.0f));
|
||
|
||
if (obb1.Intersects(obb2)) {
|
||
}
|
||
```
|