WimaAreaData.h 1.53 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1 2 3 4 5 6
#pragma once

#include <QObject>

#include "QGeoCoordinate"

7 8
#include "WimaArea.h"

9
class WimaAreaData : public QObject // Abstract class for all WimaAreaData derived objects
Valentin Platzgummer's avatar
Valentin Platzgummer committed
10 11 12 13
{
    Q_OBJECT

public:
14
    Q_PROPERTY(const QVariantList path READ path NOTIFY pathChanged)
15
    Q_PROPERTY(QString            type READ type        CONSTANT)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
16

17
    WimaAreaData(QObject *parent = nullptr);
18 19 20
    //WimaAreaData(const WimaAreaData &other, QObject *parent = nullptr);
    //WimaAreaData(const WimaArea &other, QObject *parent = nullptr);
    WimaAreaData& operator=(const WimaAreaData& otherData) = delete; // avoid slicing
Valentin Platzgummer's avatar
Valentin Platzgummer committed
21

22 23 24 25
    double                  maxAltitude()       const;
    QVariantList            path()              const;
    QGeoCoordinate          center()            const;
    QList<QGeoCoordinate>   coordinateList()    const;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
26

27 28

    virtual QString         type()         const = 0;
29 30 31 32

signals:
    void maxAltitudeChanged (double maxAltitude);
    void pathChanged        (const QVariantList& coordinateList);
33
    void centerChanged      (void);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
34 35 36

public slots:
    void setMaxAltitude(double maxAltitude);
37
    void setPath(const QList<QGeoCoordinate> &coordinateList);
38 39
    void setPath(const QVariantList &coordinateList);    
    void setCenter(const QGeoCoordinate &center);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
40

41 42
protected:
    void assign(const WimaAreaData &other);
43
    void assign(const WimaArea    &other);
44

Valentin Platzgummer's avatar
Valentin Platzgummer committed
45
private:
46 47 48
    // Member Functions

    // Member Variables
Valentin Platzgummer's avatar
Valentin Platzgummer committed
49
    // see WimaArea.h for explanation
50 51
    double         _maxAltitude;
    QVariantList   _path;
52
    QGeoCoordinate _center;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
53 54
};