#include #include #include #include "snake.h" #include "Wima/WimaPlanData.h" namespace routing { class GeneratorBase : public QObject { Q_OBJECT public: using Data = std::shared_ptr; using Generator = std::function; explicit GeneratorBase(QObject *parent = nullptr); explicit GeneratorBase(Data d, QObject *parent = nullptr); ~GeneratorBase(); virtual QString editorQML() = 0; virtual QString mapVisualQML() = 0; virtual QString name() = 0; virtual QString abbreviation() = 0; virtual bool get(Generator &generator) = 0; Data data() const; void setData(const Data &d); signals: void generatorChanged(); protected: virtual void establishConnections(); virtual void deleteConnections(); Data _d; }; } // namespace routing