WimaGlobalMeasurementPolygon.h 3.42 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1
#pragma once
2 3 4 5

#include <QObject>
#include "WimaPolygon.h"
#include "QGCMapPolyline.h"
6
#include "QGCMapPolygon.h"
7
#include "WimaVehicleMeasurementPolygon.h"
8
#include "SettingsFact.h"
9

10 11
#include "QScopedPointer"

12 13 14 15 16
class WimaGlobalMeasurementPolygon : public WimaPolygon
{
    Q_OBJECT
public:
    WimaGlobalMeasurementPolygon(QObject* parent);
17
    WimaGlobalMeasurementPolygon(QGCMapPolygon* other, QObject* parent);
18

19 20 21
    Q_PROPERTY(Fact*                    bottomLayerAltitude         READ bottomLayerAltitude                                            CONSTANT)
    Q_PROPERTY(Fact*                    numberOfLayers              READ numberOfLayers                                                 CONSTANT)
    Q_PROPERTY(Fact*                    layerDistance               READ layerDistance                                                  CONSTANT)
22
    Q_PROPERTY(QmlObjectListModel*      vehicleList                 READ vehicleList                                                    NOTIFY vehicleListChanged)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
23 24
    Q_PROPERTY(QmlObjectListModel*      vehiclePolygons             READ vehiclePolygons                                                NOTIFY vehiclePolygonsChanged)
    Q_PROPERTY(WimaPolyline*            polyline                    READ polyline                                                       NOTIFY polylineChanged)
25

Valentin Platzgummer's avatar
Valentin Platzgummer committed
26 27 28 29 30 31 32 33

    Q_INVOKABLE void addVehicle                 (Vehicle *vehicle);
    Q_INVOKABLE void removeVehicle              (int vehicleIndex);
    Q_INVOKABLE void recalculatesubPolygons     ();
    Q_INVOKABLE void removeAllVehicles          ();
    Q_INVOKABLE void addVehiclePolygon          ();
    Q_INVOKABLE void removeVehiclePolygon       (int polygonIndex);
    Q_INVOKABLE void removeVehiclePolygon       (WimaVehicleMeasurementPolygon *wimaPolygon);
34 35 36


    // Overrides from WimaPolygon
37
    QString         mapVisualQML    (void) const { return "WimaGlobalMeasurementPolygonMapVisual.qml";}
38 39 40
    QString         editorQML       (void) const { return "WimaGlobalMeasurementPolygonEditor.qml";}

    // Property accessors
Valentin Platzgummer's avatar
Valentin Platzgummer committed
41 42 43 44 45 46
    Fact*                               bottomLayerAltitude     (void)       { return &_bottomLayerAltitude;}
    Fact*                               numberOfLayers          (void)       { return &_numberOfLayers;}
    Fact*                               layerDistance           (void)       { return &_layerDistance;}
    QmlObjectListModel*                 vehicleList             (void) const { return _vehicleList;}
    QmlObjectListModel*                 vehiclePolygons         (void) const { return _vehiclePolygons;}
    WimaPolyline*                       polyline                (void)       { return &_polyline;}
47

48 49

    static const char* settingsGroup;
50 51 52
    static const char* bottomLayerAltitudeName;
    static const char* numberOfLayersName;
    static const char* layerDistanceName;
53 54


55
signals:
56 57 58 59
    void bottomLayerAltitudeChanged     (void);
    void numberOfLayersChanged          (void);
    void layerDistanceChanged           (void);
    void vehicleListChanged             (void);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
60 61
    void gatewayPolylinesChanged        (void);
    void vehiclePolygonsChanged         (void);
62 63 64


private:
65 66 67 68 69 70 71
    QMap<QString, FactMetaData*> _metaDataMap;

    SettingsFact            _bottomLayerAltitude;
    SettingsFact            _numberOfLayers;
    SettingsFact            _layerDistance;


72
    QmlObjectListModel*     _vehicleList;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
73 74 75
    QmlObjectListModel*     _vehiclePolygons;
    WimaPolyline            _polyline;

76

77

78 79
};

Valentin Platzgummer's avatar
Valentin Platzgummer committed
80