WimaPolygon.h 2.94 KB
Newer Older
1 2
#pragma once

3 4

#include "QGCMapPolygon.h"
5
#include "QGCMapPolyline.h"
6
#include "Vehicle.h"
7
#include "qobject.h"
8
#include "WimaVehicle.h"
Valentin Platzgummer's avatar
Valentin Platzgummer committed
9
#include "WimaPolyline.h"
10 11


12 13 14



15
class WimaPolygon : public QObject //abstract base class for all WimaPolygons
16 17 18 19
{
    Q_OBJECT
public:
    WimaPolygon(QObject* parent = nullptr);
20
    WimaPolygon(QGCMapPolygon* other, QObject* parent = nullptr);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
21
    ~WimaPolygon();
22 23 24



25 26 27 28 29
    Q_PROPERTY(double                   maxAltitude                 READ maxAltitude                WRITE setMaxAltitude                NOTIFY maxAltitudeChanged)
    Q_PROPERTY(QString                  mapVisualQML                READ mapVisualQML                                                   CONSTANT)
    Q_PROPERTY(QString                  editorQML                   READ editorQML                                                      CONSTANT)
    Q_PROPERTY(Vehicle*                 vehicle                     READ vehicle                    WRITE setVehicle                    NOTIFY vehicleChanged)
    Q_PROPERTY(QGCMapPolygon*           polygon                     READ polygon                                                        NOTIFY polygonChanged)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
30 31
    Q_PROPERTY(bool                     interactive                 READ interactive                WRITE setInteractive                NOTIFY interactiveChanged)
    Q_PROPERTY(int                      count                       READ count                                                          NOTIFY countChanged)
32 33

    //Property accessors
34
    double                  maxAltitude         (void) const    { return _maxAltitude;}
35
    Vehicle*                vehicle             (void) const    { return _vehicle.vehicle();}
36
    QGCMapPolygon*          polygon             (void) const    { return _polygon;}
Valentin Platzgummer's avatar
Valentin Platzgummer committed
37 38
    bool                    interactive         (void) const    { return _polygon->interactive();}
    int                     count               (void) const    { return _polygon->count();}
39 40 41

    virtual QString                     mapVisualQML    (void) const = 0;
    virtual QString                     editorQML       (void) const = 0;
42

Valentin Platzgummer's avatar
Valentin Platzgummer committed
43

44 45 46
    //Property setters
    void        setMaxAltitude     (double alt);
    void        setVehicle         (Vehicle* vehicle);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
47
    void        setInteractive     (bool interactive);
48

49

Valentin Platzgummer's avatar
Valentin Platzgummer committed
50 51
    // Member Methodes
    QList<QGCMapPolygon*>* splitPolygonArea(QGCMapPolygon *polygonToSplitt, int numberOfFractions); // use QScopedPointer to store return value
52
    QList<QGCMapPolygon*>* splitPolygonArea(int numberOfFractions); // use QScopedPointer to store return value
53 54


Valentin Platzgummer's avatar
Valentin Platzgummer committed
55 56


57
signals:
58 59
    void    maxAltitudeChanged      (void);
    void    vehicleChanged          (void);
60
    void    polygonChanged          (void);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
61 62 63
    void    interactiveChanged      (void);
    void    polylineChanged         (void);
    void    countChanged            (void);
64 65


66
protected:
67
    double                  _maxAltitude;
68
    WimaVehicle             _vehicle;
69
    QGCMapPolygon*          _polygon;
70 71
};

72