diff --git a/include/Kyoto/Graphics/CCubeSurface.hpp b/include/Kyoto/Graphics/CCubeSurface.hpp new file mode 100644 index 00000000..ed472cc0 --- /dev/null +++ b/include/Kyoto/Graphics/CCubeSurface.hpp @@ -0,0 +1,25 @@ +#ifndef _CCUBESURFACE +#define _CCUBESURFACE + +#include "Kyoto/Math/CAABox.hpp" + +class CCubeModel; +class CCubeSurface { + struct SSurfaceData { + CVector3f mCenter; + uint mMaterialIndex; + uint mDisplayListSizeAndNormalHint; + CCubeModel* mParent; + CCubeSurface* mNextSurface; + uint mExtraSize; + CVector3f mNormal; + CAABox mBounds; + }; + + static const CVector3f skDefaultNormal; + const SSurfaceData* x0_data; + + CAABox GetBounds() const; +private: +}; +#endif // _CCUBESURFACE diff --git a/src/Kyoto/Graphics/CCubeSurface.cpp b/src/Kyoto/Graphics/CCubeSurface.cpp new file mode 100644 index 00000000..edaca399 --- /dev/null +++ b/src/Kyoto/Graphics/CCubeSurface.cpp @@ -0,0 +1,13 @@ +#include "Kyoto/Graphics/CCubeSurface.hpp" + + +const CVector3f CCubeSurface::skDefaultNormal(1.f, 0.f, 0.f); + + +CAABox CCubeSurface::GetBounds() const { + if (x0_data->mExtraSize != 0) { + return x0_data->mBounds; + } + + return CAABox(x0_data->mCenter, x0_data->mCenter); +}