Files
XCEngine/docs/api/math/box/box.md
ssdfasd bd530dc8b1 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
2026-03-19 00:52:04 +08:00

1.2 KiB
Raw Blame History

Box

带变换的包围盒结构体(支持 OBB 语义,取决于方法)。

头文件: #include <XCEngine/Math/Box.h>

命名空间: XCEngine::Math

结构体定义

struct Box {
    Vector3 center = Vector3::Zero();
    Vector3 extents = Vector3::Zero();
    Matrix4x4 transform = Matrix4x4::Identity();
};

注意: Contains 方法会使用 transform 进行真正的 OBB 检测。Intersects(Box) 目前使用 AABB 简化算法,未考虑旋转。

构造函数

  • Box() - 默认构造
  • Box(const Vector3& center, const Vector3& extents) - 从中心和半长构造

实例方法

方法 返回值 描述
GetMin() Vector3 局部空间最小点
GetMax() Vector3 局部空间最大点
Contains(point) bool 点是否在盒内(使用 transform
Intersects(Sphere) bool 与球体相交
Intersects(Box) bool 与另一个盒相交AABB 检测)
Intersects(Ray, t) bool 与射线相交

相关文档