metaforce/Runtime/Collision/CCollisionActorManager.hpp

41 lines
1.0 KiB
C++
Raw Normal View History

2018-10-07 03:42:33 +00:00
#pragma once
2017-03-01 03:42:06 +00:00
#include "RetroTypes.hpp"
#include "zeus/CAABox.hpp"
#include "Collision/CJointCollisionDescription.hpp"
namespace urde
{
2017-03-26 04:12:06 +00:00
class CMaterialList;
2017-03-01 03:42:06 +00:00
class CAnimData;
class CCollisionActor;
class CStateManager;
class CCollisionActorManager
{
public:
enum class EUpdateOptions
{
Zero,
One
2017-03-01 03:42:06 +00:00
};
private:
std::vector<CJointCollisionDescription> x0_jointDescriptions;
TUniqueId x10_ownerId;
bool x12_;
2017-05-07 06:55:01 +00:00
bool x13_ = false;
bool x14_ = true;
2017-03-01 03:42:06 +00:00
public:
CCollisionActorManager(CStateManager&, TUniqueId, TAreaId, const std::vector<CJointCollisionDescription>&, bool);
void Update(float, CStateManager&, EUpdateOptions) const;
void Destroy(CStateManager&) const;
void SetActive(CStateManager&, bool);
2017-03-26 04:12:06 +00:00
void AddMaterial(CStateManager&, const CMaterialList&);
2017-03-01 03:42:06 +00:00
u32 GetNumCollisionActors() const;
CJointCollisionDescription GetCollisionDescFromIndex(u32) const;
2017-03-01 03:42:06 +00:00
zeus::CTransform GetWRLocatorTransform(const CAnimData&, CSegId, const zeus::CTransform&, const zeus::CTransform&);
};
}