CircularGenerator.h 1.4 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1
#include "GeneratorBase.h"
2 3

#include <QGeoCoordinate>
Valentin Platzgummer's avatar
Valentin Platzgummer committed
4 5 6 7 8 9

namespace routing {

class CircularGenerator : public GeneratorBase {
  Q_OBJECT
public:
10 11 12 13 14 15 16 17
  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)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
18

19 20
  virtual QString editorQML() override;
  virtual QString mapVisualQML() override;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
21

22 23
  virtual QString name() override;
  virtual QString abbreviation() override;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
24

25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
  virtual bool get(Generator &generator) override;

  QGeoCoordinate reference() const;
  Fact *distance();
  Fact *deltaAlpha();
  Fact *minLength();

  void setReference(const QGeoCoordinate &reference);
  void resetReference();

  static const char *settingsGroup;
  static const char *distanceName;
  static const char *deltaAlphaName;
  static const char *minLengthName;

signals:
  void referenceChanged();

protected:
  virtual void establishConnections() override;
  virtual void deleteConnections() override;

private:
  bool _connectionsEstablished;

  QGeoCoordinate _reference;
  QMap<QString, FactMetaData *> _metaDataMap;
  SettingsFact _distance;
  SettingsFact _deltaAlpha;
  SettingsFact _minLength;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
55 56 57
};

} // namespace routing