mirror of https://github.com/AxioDL/metaforce.git
60 lines
1.8 KiB
C++
60 lines
1.8 KiB
C++
#ifndef __URDE_CJOINTCOLLISIONDESCRIPTION_HPP__
|
|
#define __URDE_CJOINTCOLLISIONDESCRIPTION_HPP__
|
|
|
|
#include "Character/CSegId.hpp"
|
|
#include "zeus/CAABox.hpp"
|
|
|
|
namespace urde
|
|
{
|
|
class CJointCollisionDescription
|
|
{
|
|
public:
|
|
enum class ECollisionType
|
|
{
|
|
};
|
|
|
|
enum class EOrientationType
|
|
{
|
|
|
|
};
|
|
|
|
private:
|
|
u32 x0_;
|
|
u32 x4_;
|
|
CSegId x8_;
|
|
CSegId x9_;
|
|
zeus::CVector3f xc_;
|
|
zeus::CVector3f x18_;
|
|
float x24_;
|
|
float x28_;
|
|
std::string x2c_name;
|
|
TUniqueId x3c_actorId;
|
|
float x40_;
|
|
|
|
public:
|
|
CJointCollisionDescription(ECollisionType, CSegId, CSegId, const zeus::CVector3f&, const zeus::CVector3f&, float,
|
|
float, EOrientationType, const std::string&, float);
|
|
const std::string& GetName() const { return x2c_name; }
|
|
TUniqueId GetCollisionActorId() const { return x3c_actorId; }
|
|
void SphereSubdivideCollision(ECollisionType, CSegId, CSegId, float, float, EOrientationType, const std::string&,
|
|
float);
|
|
void SphereCollision(CSegId, float, const std::string&, float);
|
|
void AABoxCollision(CSegId, zeus::CVector3f const&, const std::string&, float);
|
|
void OBBAutoSizeCollision(CSegId, CSegId, const zeus::CVector3f&, EOrientationType, const std::string&, float);
|
|
void OBBCollision(CSegId, const zeus::CVector3f&, const zeus::CVector3f&, const std::string&, float);
|
|
zeus::CVector3f GetPivotPoint() const;
|
|
float GetRadius() const;
|
|
void SetCollisionActorId(TUniqueId);
|
|
EOrientationType GetOrientationType() const;
|
|
float GetMass() const;
|
|
zeus::CAABox GetBounds() const;
|
|
void GetType() const;
|
|
void GetNextId() const;
|
|
void GetPivotId() const;
|
|
void ScaleAllBounds(const zeus::CVector3f&);
|
|
void GetTween() const;
|
|
};
|
|
}
|
|
|
|
#endif // __URDE_CJOINTCOLLISIONDESCRIPTION_HPP__
|