metaforce/Runtime/Collision/CCollidableAABox.hpp

41 lines
1.3 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
2016-04-26 10:40:56 +00:00
2016-06-24 20:09:38 +00:00
#include "CCollisionPrimitive.hpp"
2016-04-26 10:40:56 +00:00
2016-06-24 20:09:38 +00:00
namespace urde
2016-04-26 10:40:56 +00:00
{
namespace Collide
{
bool AABox_AABox(const CInternalCollisionStructure&, CCollisionInfoList&);
bool AABox_AABox_Bool(const CInternalCollisionStructure&);
}
2016-06-24 20:09:38 +00:00
class CCollidableAABox : public CCollisionPrimitive
{
static const Type sType;
static u32 sTableIndex;
zeus::CAABox x10_aabox;
2016-04-26 10:40:56 +00:00
public:
CCollidableAABox();
2016-09-01 09:31:18 +00:00
CCollidableAABox(const zeus::CAABox&, const CMaterialList&);
2016-06-24 20:09:38 +00:00
zeus::CAABox Transform(const zeus::CTransform&) const;
virtual u32 GetTableIndex() const;
virtual zeus::CAABox CalculateAABox(const zeus::CTransform&) const;
virtual zeus::CAABox CalculateLocalAABox() const;
virtual FourCC GetPrimType() const;
virtual CRayCastResult CastRayInternal(const CInternalRayCastStructure&) const;
const zeus::CAABox& GetAABB() const { return x10_aabox; }
2016-06-24 20:09:38 +00:00
static const CCollisionPrimitive::Type& GetType();
static void SetStaticTableIndex(u32 index);
static bool CollideMovingAABox(const CInternalCollisionStructure&, const zeus::CVector3f&, double&,
CCollisionInfo&);
static bool CollideMovingSphere(const CInternalCollisionStructure&, const zeus::CVector3f&, double&,
CCollisionInfo&);
2016-04-26 10:40:56 +00:00
};
2016-06-24 20:09:38 +00:00
}
2016-04-26 10:40:56 +00:00