#pragma once #include #include class Generator { public: virtual ~Generator() = default; virtual void update(float dt) = 0; void attach(std::shared_ptr origin); void detach(); Vector2 position() const; protected: std::shared_ptr m_origin; };