#pragma once #include "QGCGeo.h" #include "QGCMapPolygon.h" #include "QGCMapPolyline.h" #include "Vehicle.h" #include "qobject.h" #include #include #include #include "GeoUtilities.h" #include "PlanimetryCalculus.h" #include "PolygonCalculus.h" class WimaArea : public QGCMapPolygon // abstract base class for all WimaAreas { Q_OBJECT public: WimaArea(QObject *parent = nullptr); WimaArea(const WimaArea &other, QObject *parent = nullptr); WimaArea &operator=(const WimaArea &other); Q_PROPERTY(QString mapVisualQML READ mapVisualQML CONSTANT) Q_PROPERTY(QString editorQML READ editorQML CONSTANT) virtual QString mapVisualQML(void) const = 0; virtual QString editorQML(void) const = 0; void saveToJson(QJsonObject &jsonObject); bool loadFromJson(const QJsonObject &jsonObject, QString &errorString); // static Members static const char *wimaAreaName; static const char *areaTypeName; static const char *settingsGroup; private: void init(); };