#ifndef _COBBOX #define _COBBOX #include "Kyoto/Math/CAABox.hpp" #include "Kyoto/Math/CTransform4f.hpp" #include "Kyoto/Math/CVector3f.hpp" class CInputStream; class CMRay; class COBBox { public: COBBox(const CTransform4f& xf, const CVector3f& extents); COBBox(CInputStream& in); CAABox CalculateAABox(const CTransform4f& xf) const; static COBBox FromAABox(const CAABox& box, const CTransform4f& xf); bool LineIntersectsBox(const CMRay& ray, float& penetration) const; bool AABoxIntersectsBox(const CAABox& box) const; bool OBBIntersectsBox(const COBBox& box) const; const CTransform4f& GetTransform() const { return mTransform; } const CVector3f& GetSize() const { return mExtents; } private: CTransform4f mTransform; CVector3f mExtents; }; #endif // _COBBOX