WimaGlobalMeasurementPolygon.h 3.24 KB
Newer Older
1 2 3 4 5 6
#ifndef WIMAGLOBALMEASUREMENTPOLYGON_H
#define WIMAGLOBALMEASUREMENTPOLYGON_H

#include <QObject>
#include "WimaPolygon.h"
#include "QGCMapPolyline.h"
7
#include "QGCMapPolygon.h"
8 9 10 11 12 13 14
#include "WimaVehicleMeasurementPolygon.h"

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

    Q_PROPERTY(double                   bottomLayerAltitude         READ bottomLayerAltitude        WRITE setBottomLayerAltitude        NOTIFY bottomLayerAltitudeChanged)
    Q_PROPERTY(int                      numberOfLayers              READ numberOfLayers             WRITE setNumberOfLayers             NOTIFY numberOfLayersChanged)
    Q_PROPERTY(double                   layerDistance               READ layerDistance              WRITE setLayerDistance              NOTIFY layerDistanceChanged)
20
    Q_PROPERTY(QList<Vehicle*>          vehicleList                 READ vehicleList                                                    NOTIFY vehicleListChanged)
21
    Q_PROPERTY(QGCMapPolyline*          entryPolyline               READ entryPolyline                                                  NOTIFY entryPolylineChanged)
22
    Q_PROPERTY( QList<WimaPolygon*>     subPolygons                 READ subPolygons                                                    NOTIFY subPolygonsChanged)
23 24 25

    Q_INVOKABLE void addVehicle(Vehicle *vehicle);
    Q_INVOKABLE void removeVehicle(int vehicleIndex);
26
    Q_INVOKABLE void recalculatesubPolygons();
27 28 29 30 31 32 33 34
    Q_INVOKABLE void removeAllVehicles();


    // Overrides from WimaPolygon
    QString         mapVisualQML    (void) const { return "WimaGlobalMeasurementPolygonMapVisal.qml";}
    QString         editorQML       (void) const { return "WimaGlobalMeasurementPolygonEditor.qml";}

    // Property accessors
35 36 37 38 39
    double                                      bottomLayerAltitude     (void) const { return _bottomLayerAltitude;}
    int                                         numberOfLayers          (void) const { return _numberOfLayers;}
    double                                      layerDistance           (void) const { return _layerDistance;}
    QList<Vehicle*>                             vehicleList             (void) const { return _vehicleList;}
    QGCMapPolyline*                             entryPolyline           (void) const { return _entryPolyline;}
40 41 42

    // Property setters

43 44 45
    void setBottomLayerAltitude     (double altitude);
    void setNumberOfLayers          (int numberOfLayers);
    void setLayerDistance           (double distance);
46 47

signals:
48 49 50 51 52 53
    void bottomLayerAltitudeChanged     (double altitude);
    void numberOfLayersChanged          (int numberOfLayers);
    void layerDistanceChanged           (double distance);
    void vehicleListChanged             (QList<Vehicle*> vehicleList);
    void entryPolylineChanged           (QGCMapPolyline* polyline);
    void subPolygonsChanged             (QList<WimaPolygon*> subPolygons);
54 55 56 57


private:
    double                  _bottomLayerAltitude;
58
    int                     _numberOfLayers;
59
    double                  _layerDistance;
60
    QList<Vehicle*>         _vehicleList;
61 62 63 64 65
    QGCMapPolyline*         _entryPolyline;

};

#endif // WIMAGLOBALMEASUREMENTPOLYGON_H