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
|
|
|
{
|
2016-06-26 01:11:09 +00:00
|
|
|
namespace Collide
|
|
|
|
{
|
|
|
|
bool AABox_AABox(const CInternalCollisionStructure&, CCollisionInfoList&);
|
2017-01-04 04:08:30 +00:00
|
|
|
bool AABox_AABox_Bool(const CInternalCollisionStructure&);
|
2016-06-26 01:11:09 +00:00
|
|
|
}
|
|
|
|
|
2016-06-24 20:09:38 +00:00
|
|
|
class CCollidableAABox : public CCollisionPrimitive
|
|
|
|
{
|
|
|
|
static const Type sType;
|
|
|
|
static u32 sTableIndex;
|
|
|
|
|
|
|
|
zeus::CAABox x10_aabox;
|
2017-01-04 04:08:30 +00:00
|
|
|
|
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;
|
2017-06-18 01:58:13 +00:00
|
|
|
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);
|
2017-01-04 04:08:30 +00:00
|
|
|
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
|
|
|
|