mirror of https://github.com/AxioDL/metaforce.git
CollisionPrimitive: Make use of constexpr types where applicable
We can now mark some usages of these types as constexpr and also make them fully internal to the translation unit.
This commit is contained in:
parent
5c7bb9e7d7
commit
d7dd256d38
|
@ -5,7 +5,7 @@
|
||||||
#include "CInternalRayCastStructure.hpp"
|
#include "CInternalRayCastStructure.hpp"
|
||||||
|
|
||||||
namespace urde {
|
namespace urde {
|
||||||
const CCollisionPrimitive::Type CCollidableAABox::sType(CCollidableAABox::SetStaticTableIndex, "CCollidableAABox");
|
constexpr CCollisionPrimitive::Type sType(CCollidableAABox::SetStaticTableIndex, "CCollidableAABox");
|
||||||
u32 CCollidableAABox::sTableIndex = -1;
|
u32 CCollidableAABox::sTableIndex = -1;
|
||||||
|
|
||||||
CCollidableAABox::CCollidableAABox() = default;
|
CCollidableAABox::CCollidableAABox() = default;
|
||||||
|
|
|
@ -12,7 +12,6 @@ bool AABox_AABox_Bool(const CInternalCollisionStructure&);
|
||||||
} // namespace Collide
|
} // namespace Collide
|
||||||
|
|
||||||
class CCollidableAABox : public CCollisionPrimitive {
|
class CCollidableAABox : public CCollisionPrimitive {
|
||||||
static const Type sType;
|
|
||||||
static u32 sTableIndex;
|
static u32 sTableIndex;
|
||||||
|
|
||||||
zeus::CAABox x10_aabox;
|
zeus::CAABox x10_aabox;
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
#include "CCollidableCollisionSurface.hpp"
|
#include "CCollidableCollisionSurface.hpp"
|
||||||
|
|
||||||
namespace urde {
|
namespace urde {
|
||||||
const CCollisionPrimitive::Type CCollidableCollisionSurface::sType(CCollidableCollisionSurface::SetStaticTableIndex,
|
constexpr CCollisionPrimitive::Type sType(CCollidableCollisionSurface::SetStaticTableIndex,
|
||||||
"CCollidableCollisionSurface");
|
"CCollidableCollisionSurface");
|
||||||
u32 CCollidableCollisionSurface::sTableIndex = -1;
|
u32 CCollidableCollisionSurface::sTableIndex = -1;
|
||||||
|
|
||||||
const CCollisionPrimitive::Type& CCollidableCollisionSurface::GetType() { return sType; }
|
const CCollisionPrimitive::Type& CCollidableCollisionSurface::GetType() { return sType; }
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
|
|
||||||
namespace urde {
|
namespace urde {
|
||||||
class CCollidableCollisionSurface {
|
class CCollidableCollisionSurface {
|
||||||
static const CCollisionPrimitive::Type sType;
|
|
||||||
static u32 sTableIndex;
|
static u32 sTableIndex;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
|
@ -7,8 +7,7 @@
|
||||||
#include "CToken.hpp"
|
#include "CToken.hpp"
|
||||||
|
|
||||||
namespace urde {
|
namespace urde {
|
||||||
const CCollisionPrimitive::Type CCollidableOBBTreeGroup::sType(CCollidableOBBTreeGroup::SetStaticTableIndex,
|
constexpr CCollisionPrimitive::Type sType(CCollidableOBBTreeGroup::SetStaticTableIndex, "CCollidableOBBTreeGroup");
|
||||||
"CCollidableOBBTreeGroup");
|
|
||||||
u32 CCollidableOBBTreeGroup::sTableIndex = -1;
|
u32 CCollidableOBBTreeGroup::sTableIndex = -1;
|
||||||
|
|
||||||
CCollidableOBBTreeGroupContainer::CCollidableOBBTreeGroupContainer(CInputStream& in) {
|
CCollidableOBBTreeGroupContainer::CCollidableOBBTreeGroupContainer(CInputStream& in) {
|
||||||
|
|
|
@ -24,7 +24,6 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
class CCollidableOBBTreeGroup : public CCollisionPrimitive {
|
class CCollidableOBBTreeGroup : public CCollisionPrimitive {
|
||||||
static const Type sType;
|
|
||||||
static u32 sTableIndex;
|
static u32 sTableIndex;
|
||||||
const CCollidableOBBTreeGroupContainer* x10_container;
|
const CCollidableOBBTreeGroupContainer* x10_container;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
#include "CInternalRayCastStructure.hpp"
|
#include "CInternalRayCastStructure.hpp"
|
||||||
|
|
||||||
namespace urde {
|
namespace urde {
|
||||||
const CCollisionPrimitive::Type CCollidableSphere::sType(CCollidableSphere::SetStaticTableIndex, "CCollidableSphere");
|
constexpr CCollisionPrimitive::Type sType(CCollidableSphere::SetStaticTableIndex, "CCollidableSphere");
|
||||||
u32 CCollidableSphere::sTableIndex = -1;
|
u32 CCollidableSphere::sTableIndex = -1;
|
||||||
|
|
||||||
namespace Collide {
|
namespace Collide {
|
||||||
|
@ -224,6 +224,8 @@ CRayCastResult CCollidableSphere::CastRayInternal(const CInternalRayCastStructur
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const CCollisionPrimitive::Type& CCollidableSphere::GetType() { return sType; }
|
||||||
|
|
||||||
bool CCollidableSphere::CollideMovingAABox(const CInternalCollisionStructure& collision, const zeus::CVector3f& dir,
|
bool CCollidableSphere::CollideMovingAABox(const CInternalCollisionStructure& collision, const zeus::CVector3f& dir,
|
||||||
double& dOut, CCollisionInfo& infoOut) {
|
double& dOut, CCollisionInfo& infoOut) {
|
||||||
const CCollidableSphere& p0 = static_cast<const CCollidableSphere&>(collision.GetLeft().GetPrim());
|
const CCollidableSphere& p0 = static_cast<const CCollidableSphere&>(collision.GetLeft().GetPrim());
|
||||||
|
|
|
@ -12,8 +12,8 @@ bool Sphere_AABox_Bool(const CInternalCollisionStructure&);
|
||||||
bool Sphere_Sphere(const CInternalCollisionStructure&, CCollisionInfoList&);
|
bool Sphere_Sphere(const CInternalCollisionStructure&, CCollisionInfoList&);
|
||||||
bool Sphere_Sphere_Bool(const CInternalCollisionStructure&);
|
bool Sphere_Sphere_Bool(const CInternalCollisionStructure&);
|
||||||
} // namespace Collide
|
} // namespace Collide
|
||||||
|
|
||||||
class CCollidableSphere : public CCollisionPrimitive {
|
class CCollidableSphere : public CCollisionPrimitive {
|
||||||
static const Type sType;
|
|
||||||
static u32 sTableIndex;
|
static u32 sTableIndex;
|
||||||
|
|
||||||
zeus::CSphere x10_sphere;
|
zeus::CSphere x10_sphere;
|
||||||
|
@ -31,7 +31,7 @@ public:
|
||||||
FourCC GetPrimType() const override;
|
FourCC GetPrimType() const override;
|
||||||
CRayCastResult CastRayInternal(const CInternalRayCastStructure&) const override;
|
CRayCastResult CastRayInternal(const CInternalRayCastStructure&) const override;
|
||||||
|
|
||||||
static const Type& GetType() { return sType; }
|
static const Type& GetType();
|
||||||
static void SetStaticTableIndex(u32 index) { sTableIndex = index; }
|
static void SetStaticTableIndex(u32 index) { sTableIndex = index; }
|
||||||
static bool CollideMovingAABox(const CInternalCollisionStructure&, const zeus::CVector3f&, double&, CCollisionInfo&);
|
static bool CollideMovingAABox(const CInternalCollisionStructure&, const zeus::CVector3f&, double&, CCollisionInfo&);
|
||||||
static bool CollideMovingSphere(const CInternalCollisionStructure&, const zeus::CVector3f&, double&, CCollisionInfo&);
|
static bool CollideMovingSphere(const CInternalCollisionStructure&, const zeus::CVector3f&, double&, CCollisionInfo&);
|
||||||
|
|
Loading…
Reference in New Issue