Fix Box documentation to accurately reflect AABB vs OBB behavior
- Updated box.md to clarify that Box uses OBB semantics for Contains but currently uses AABB for Intersects(Box) - Updated intersects-box.md to document that it uses AABB algorithm instead of SAT, since the current implementation ignores transform - Added notes explaining the current limitations of the Box implementation
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Box
|
||||
|
||||
带变换的有向包围盒 (OBB) 结构体。
|
||||
带变换的包围盒结构体(支持 OBB 语义,取决于方法)。
|
||||
|
||||
**头文件:** `#include <XCEngine/Math/Box.h>`
|
||||
|
||||
@@ -16,6 +16,8 @@ struct Box {
|
||||
};
|
||||
```
|
||||
|
||||
**注意:** `Contains` 方法会使用 `transform` 进行真正的 OBB 检测。`Intersects(Box)` 目前使用 AABB 简化算法,未考虑旋转。
|
||||
|
||||
## 构造函数
|
||||
|
||||
- `Box()` - 默认构造
|
||||
@@ -27,9 +29,9 @@ struct Box {
|
||||
|------|--------|------|
|
||||
| [GetMin()](getmin.md) | `Vector3` | 局部空间最小点 |
|
||||
| [GetMax()](getmax.md) | `Vector3` | 局部空间最大点 |
|
||||
| [Contains(point)](contains.md) | `bool` | 点是否在盒内 |
|
||||
| [Contains(point)](contains.md) | `bool` | 点是否在盒内(使用 transform) |
|
||||
| [Intersects(Sphere)](intersects.md) | `bool` | 与球体相交 |
|
||||
| [Intersects(Box)](intersects-box.md) | `bool` | 与另一个 OBB 相交 |
|
||||
| [Intersects(Box)](intersects-box.md) | `bool` | 与另一个盒相交(AABB 检测) |
|
||||
| [Intersects(Ray, t)](intersects-ray.md) | `bool` | 与射线相交 |
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -4,13 +4,15 @@
|
||||
bool Intersects(const Box& other) const
|
||||
```
|
||||
|
||||
检测两个 OBB 是否相交(使用 SAT 算法)。
|
||||
检测两个盒是否相交(使用 AABB 简化算法,暂未考虑 transform 旋转)。
|
||||
|
||||
**参数:**
|
||||
- `other` - 另一个 OBB
|
||||
- `other` - 另一个盒
|
||||
|
||||
**返回:** `bool` - true 表示相交
|
||||
|
||||
**注意:** 当前实现为 AABB 检测,未使用 transform 进行真正的 OBB-SAT 检测。
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**示例:**
|
||||
|
||||
Reference in New Issue
Block a user