36 lines
740 B
Markdown
36 lines
740 B
Markdown
# OBB::Contains
|
|
|
|
```cpp
|
|
bool Contains(const Vector3& point) const;
|
|
```
|
|
|
|
检测给定点是否位于 OBB 包围盒内部。通过将点变换到局部坐标系,然后检查其坐标分量是否在半长向量范围内。
|
|
|
|
**参数:**
|
|
- `point` - 待检测的三维点
|
|
|
|
**返回:** 点在包围盒内返回 `true`,否则返回 `false`
|
|
|
|
**异常:** 无
|
|
|
|
**线程安全:** ✅
|
|
|
|
**复杂度:** O(1)
|
|
|
|
**示例:**
|
|
|
|
```cpp
|
|
#include "AABB.h"
|
|
#include "Vector3.h"
|
|
|
|
using namespace XCEngine::Math;
|
|
|
|
OBB obb(Vector3(0.0f, 0.0f, 0.0f), Vector3(1.0f, 0.5f, 1.0f));
|
|
|
|
Vector3 insidePoint(0.0f, 0.0f, 0.0f);
|
|
Vector3 outsidePoint(2.0f, 0.0f, 0.0f);
|
|
|
|
bool isInside = obb.Contains(insidePoint);
|
|
bool isOutside = obb.Contains(outsidePoint);
|
|
```
|