#pragma once #include #include #include #include "Runtime/RetroTypes.hpp" #include "Shaders/CModelShaders.hpp" #include #include #include namespace metaforce { class CBooModel; struct CBooSurface; class CMetroidModelInstance { friend class CBooRenderer; friend class CGameArea; int x0_visorFlags; zeus::CTransform x4_xf; zeus::CAABox x34_aabb; std::vector m_surfaces; std::unique_ptr m_instance; hecl::HMDLMeta m_hmdlMeta; std::unordered_map m_shaders; public: CMetroidModelInstance() = default; CMetroidModelInstance(CMetroidModelInstance&&) = default; void Clear() { x0_visorFlags = 0; x4_xf = {}; x34_aabb = {}; m_surfaces.clear(); m_instance.reset(); m_hmdlMeta = {}; m_shaders.clear(); } }; } // namespace metaforce