prime/include/Collision/CCollisionPrimitive.hpp

39 lines
1001 B
C++
Raw Normal View History

#ifndef _CCOLLISIONPRIMITIVE
#define _CCOLLISIONPRIMITIVE
#include "types.h"
#include "Collision/CMaterialList.hpp"
#include "Kyoto/IObjectStore.hpp"
#include "Kyoto/Math/CAABox.hpp"
#include "Kyoto/Math/CTransform4f.hpp"
class CRayCastResult;
class CInternalRayCastStructure;
class CCollisionPrimitive {
public:
CCollisionPrimitive(const CMaterialList& list);
virtual uint GetTableIndex() const = 0;
virtual void SetMaterial(const CMaterialList&);
virtual const CMaterialList& GetMaterial() const;
virtual CAABox CalculateAABox(const CTransform4f&) const = 0;
virtual CAABox CalculateLocalAABox() const = 0;
virtual FourCC GetPrimType() const = 0;
virtual ~CCollisionPrimitive();
virtual CRayCastResult CastRayInternal(const CInternalRayCastStructure&) const = 0;
static void Uninitialize();
private:
uint x4_;
CMaterialList x8_material;
};
CHECK_SIZEOF(CCollisionPrimitive, 0x10)
inline CCollisionPrimitive::~CCollisionPrimitive() {}
#endif // _CCOLLISIONPRIMITIVE