#include "GeneratorBase.h" #include namespace routing { class CircularGenerator : public GeneratorBase { Q_OBJECT public: CircularGenerator(QObject *parent = nullptr); CircularGenerator(Data d, QObject *parent = nullptr); Q_PROPERTY(QGeoCoordinate reference READ reference WRITE setReference NOTIFY referenceChanged) Q_PROPERTY(Fact *distance READ distance CONSTANT) Q_PROPERTY(Fact *deltaAlpha READ deltaAlpha CONSTANT) Q_PROPERTY(Fact *minLength READ minLength CONSTANT) virtual QString editorQml() override; virtual QString mapVisualQml() override; virtual QString name() override; virtual QString abbreviation() override; virtual bool get(Generator &generator) override; QGeoCoordinate reference() const; Fact *distance(); Fact *deltaAlpha(); Fact *minLength(); void setReference(const QGeoCoordinate &reference); Q_INVOKABLE void resetReference(); static const char *settingsGroup; static const char *distanceName; static const char *deltaAlphaName; static const char *minLengthName; static const char *refPointLongitudeName; static const char *refPointLatitudeName; static const char *refPointAltitudeName; signals: void referenceChanged(); protected: virtual void establishConnections() override; virtual void deleteConnections() override; private: bool _connectionsEstablished; QGeoCoordinate _reference; QMap _metaDataMap; SettingsFact _distance; SettingsFact _deltaAlpha; SettingsFact _minLength; }; } // namespace routing