#pragma once #include "mesh.h" #include "texture.h" #include #include #include "../geom/arrow.h" namespace Render::GL { class ResourceManager : protected QOpenGLFunctions_3_3_Core { public: ResourceManager() = default; ~ResourceManager() override = default; auto initialize() -> bool; [[nodiscard]] auto quad() const -> Mesh * { return m_quadMesh.get(); } [[nodiscard]] auto ground() const -> Mesh * { return m_groundMesh.get(); } [[nodiscard]] auto unit() const -> Mesh * { return m_unitMesh.get(); } [[nodiscard]] auto white() const -> Texture * { return m_whiteTexture.get(); } private: std::unique_ptr m_quadMesh; std::unique_ptr m_groundMesh; std::unique_ptr m_unitMesh; std::unique_ptr m_whiteTexture; }; } // namespace Render::GL