WimaGOperationArea.h 3.22 KB
Newer Older
1
#pragma once
2

3 4 5 6
#include <QObject>
#include "WimaArea.h"
#include "SettingsFact.h"
#include "WimaTrackerPolyline.h"
7
#include "WimaGOperationArea.h"
8

9 10 11
#include "QScopedPointer"

class WimaGOperationArea : public WimaArea
12
{
13
    Q_OBJECT
14
public:
15 16 17
    WimaGOperationArea(QObject* parent = nullptr);
    WimaGOperationArea(const WimaGOperationArea& other, QObject* parent = nullptr);
    WimaGOperationArea& operator=(WimaGOperationArea other);
18

19 20 21 22
    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)
23
    Q_PROPERTY(QGCMapPolygon*           borderPolygon           READ borderPolygon          NOTIFY      borderPolygonChanged)
24 25


26
    void setVehicleCorridor         (WimaVCorridor* corridor);
27 28 29 30 31 32 33 34 35

    // 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;}
Valentin Platzgummer's avatar
Valentin Platzgummer committed
36
    Fact*                               borderPolygonOffset     (void)       { return &_borderPolygonOffset;}
37
    QGCMapPolygon*                      borderPolygon           (void)       { return &_borderPolygon;}
38

39 40 41 42
    // Member Methodes
    void saveToJson(QJsonObject& json);
    bool loadFromJson(const QJsonObject& json, QString &errorString);

43 44 45 46
    // Friends
    friend void swap(WimaGOperationArea& area1, WimaGOperationArea& area2);
    friend void print(const WimaGOperationArea& area, QString outputStr);
    friend void print(const WimaGOperationArea& area);
47

48
    // Static Variables
49 50 51 52
    static const char* settingsGroup;
    static const char* bottomLayerAltitudeName;
    static const char* numberOfLayersName;
    static const char* layerDistanceName;
53
    static const char* borderPolygonOffsetName;
54
    static const char* wimaGOperationAreaName;
55 56 57 58 59 60 61 62 63


signals:
    void bottomLayerAltitudeChanged     (void);
    void numberOfLayersChanged          (void);
    void layerDistanceChanged           (void);
    //void vehicleListChanged             (void);
    void polylineChanged                (void);
    //void vehiclePolygonsChanged         (void);
64
    void vehicleCorridorChanged         (WimaVCorridor* corridor);
65 66 67 68 69
    void borderPolygonChanged           (void);

private slots:
    void recalcBorderPolygon            (void);

70 71

private:
72 73 74 75
    // Member Methodes
    void init();

    // Members
76 77 78 79 80
    QMap<QString, FactMetaData*> _metaDataMap;

    SettingsFact            _bottomLayerAltitude;
    SettingsFact            _numberOfLayers;
    SettingsFact            _layerDistance;
81
    SettingsFact            _borderPolygonOffset;
82

83
    QGCMapPolygon           _borderPolygon;
84 85
};

86