metaforce/Runtime/Collision/CCollisionActorManager.hpp

41 lines
1.0 KiB
C++

#pragma once
#include "RetroTypes.hpp"
#include "zeus/CAABox.hpp"
#include "Collision/CJointCollisionDescription.hpp"
namespace urde
{
class CMaterialList;
class CAnimData;
class CCollisionActor;
class CStateManager;
class CCollisionActorManager
{
public:
enum class EUpdateOptions
{
Zero,
One
};
private:
std::vector<CJointCollisionDescription> x0_jointDescriptions;
TUniqueId x10_ownerId;
bool x12_;
bool x13_ = false;
bool x14_ = true;
public:
CCollisionActorManager(CStateManager&, TUniqueId, TAreaId, const std::vector<CJointCollisionDescription>&, bool);
void Update(float, CStateManager&, EUpdateOptions) const;
void Destroy(CStateManager&) const;
void SetActive(CStateManager&, bool);
void AddMaterial(CStateManager&, const CMaterialList&);
u32 GetNumCollisionActors() const;
CJointCollisionDescription GetCollisionDescFromIndex(u32) const;
zeus::CTransform GetWRLocatorTransform(const CAnimData&, CSegId, const zeus::CTransform&, const zeus::CTransform&);
};
}