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