# Box 带变换的包围盒结构体(支持 OBB 语义,取决于方法)。 **头文件:** `#include ` **命名空间:** `XCEngine::Math` ## 结构体定义 ```cpp struct Box { Vector3 center = Vector3::Zero(); Vector3 extents = Vector3::Zero(); Matrix4x4 transform = Matrix4x4::Identity(); }; ``` **成员:** - `center` - 包围盒中心点 - `extents` - 包围盒半长(各轴向的半径) - `transform` - 变换矩阵(用于 OBB 检测) **注意:** `Contains` 方法会使用 `transform` 进行真正的 OBB 检测。`Intersects(Box)` 目前使用 AABB 简化算法,未考虑旋转。 ## 构造函数 - `Box()` - 默认构造 - `Box(const Vector3& center, const Vector3& extents)` - 从中心和半长构造 ## 实例方法 | 方法 | 返回值 | 描述 | |------|--------|------| | [GetMin()](getmin.md) | `Vector3` | 局部空间最小点 | | [GetMax()](getmax.md) | `Vector3` | 局部空间最大点 | | [Contains(point)](contains.md) | `bool` | 点是否在盒内(使用 transform) | | [Intersects(Sphere)](intersects.md) | `bool` | 与球体相交 | | [Intersects(Box)](intersects-box.md) | `bool` | 与另一个盒相交(AABB 检测) | | [Intersects(Ray, t)](intersects-ray.md) | `bool` | 与射线相交 | ## 相关文档 - [Math 模块总览](../math.md) - 返回 Math 模块总览