#ifndef PHYSICAL_H #define PHYSICAL_H #include #include #include #include #include class Shader; class Mesh; class Texture; template class Cache; class Physical : public Renderable { public: Physical(glm::vec3 where, const std::string & m, const std::string & t); void render(const Shader & shader) const override; [[nodiscard]] const auto & getPosition() const { return location.GetPos(); } protected: Transform location; std::shared_ptr mesh; std::shared_ptr texture; private: static Cache cachedMesh; static Cache cachedTexture; }; #endif