#pragma once #include #include "WimaArea.h" #include "SettingsFact.h" #include "WimaTrackerPolyline.h" #include "WimaGOperationArea.h" #include "QScopedPointer" class WimaGOperationArea : public WimaArea { Q_OBJECT public: WimaGOperationArea(QObject* parent = nullptr); WimaGOperationArea(const WimaGOperationArea& other, QObject* parent = nullptr); WimaGOperationArea& operator=(WimaGOperationArea other); Q_PROPERTY(Fact* bottomLayerAltitude READ bottomLayerAltitude CONSTANT) Q_PROPERTY(Fact* numberOfLayers READ numberOfLayers CONSTANT) Q_PROPERTY(Fact* layerDistance READ layerDistance CONSTANT) Q_PROPERTY(Fact* borderPolygonOffset READ borderPolygonOffset CONSTANT) Q_PROPERTY(QGCMapPolygon* borderPolygon READ borderPolygon NOTIFY borderPolygonChanged) void setVehicleCorridor (WimaVCorridor* corridor); // Overrides from WimaPolygon QString mapVisualQML (void) const { return "WimaGOperationAreaMapVisual.qml";} QString editorQML (void) const { return "WimaGOperationAreaEditor.qml";} // Property accessors Fact* bottomLayerAltitude (void) { return &_bottomLayerAltitude;} Fact* numberOfLayers (void) { return &_numberOfLayers;} Fact* layerDistance (void) { return &_layerDistance;} Fact* borderPolygonOffset (void) { return &_borderPolygonOffset;} QGCMapPolygon* borderPolygon (void) { return &_borderPolygon;} // Member Methodes void saveToJson(QJsonObject& json); bool loadFromJson(const QJsonObject& json, QString &errorString); // Friends friend void swap(WimaGOperationArea& area1, WimaGOperationArea& area2); friend void print(const WimaGOperationArea& area, QString outputStr); friend void print(const WimaGOperationArea& area); // Static Variables static const char* settingsGroup; static const char* bottomLayerAltitudeName; static const char* numberOfLayersName; static const char* layerDistanceName; static const char* borderPolygonOffsetName; static const char* wimaGOperationAreaName; signals: void bottomLayerAltitudeChanged (void); void numberOfLayersChanged (void); void layerDistanceChanged (void); //void vehicleListChanged (void); void polylineChanged (void); //void vehiclePolygonsChanged (void); void vehicleCorridorChanged (WimaVCorridor* corridor); void borderPolygonChanged (void); private slots: void recalcBorderPolygon (void); private: // Member Methodes void init(); // Members QMap _metaDataMap; SettingsFact _bottomLayerAltitude; SettingsFact _numberOfLayers; SettingsFact _layerDistance; SettingsFact _borderPolygonOffset; QGCMapPolygon _borderPolygon; };