WimaServiceArea.h 1.92 KB
Newer Older
1
#pragma once
2

3 4
#include <QObject>
#include "WimaArea.h"
5
#include "WimaTrackerPolyline.h"
6

7
class WimaServiceArea : public WimaArea
8
{
9
    Q_OBJECT
10
public:
11 12 13
    WimaServiceArea(QObject* parent = nullptr);
    WimaServiceArea(const WimaServiceArea& other, QObject* parent);
    WimaServiceArea& operator=(WimaServiceArea other);
14

15 16
    Q_PROPERTY(const QGeoCoordinate&          takeOffPosition READ takeOffPosition    WRITE setTakeOffPosition    NOTIFY takeOffPositionChanged)
    Q_PROPERTY(const QGeoCoordinate&          landPosition    READ landPosition       WRITE setLandPosition       NOTIFY landPositionChanged)
17

18 19 20 21 22 23

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

    // Property acessors
24 25
    const QGeoCoordinate&          takeOffPosition             (void)  const { return _takeOffPosition;}
    const QGeoCoordinate&          landPosition                (void)  const { return _landPosition;}
26

27 28

    // Property setters
29 30 31 32 33 34 35 36 37
    void setTakeOffPosition             (const QGeoCoordinate& coordinate);
    void setLandPosition                (const QGeoCoordinate& coordinate);

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

    // static Members
    static const char* wimaServiceAreaName;
38

39 40 41 42 43
    // Friends
    friend void swap(WimaServiceArea& area1, WimaServiceArea& area2);
    friend void print(const WimaServiceArea& area, QString& outputStr);
    friend void print(const WimaServiceArea& area);

44 45 46
signals:
    void takeOffPositionChanged         (void);
    void landPositionChanged            (void);
47
    void vehicleCorridorChanged         (WimaVCorridor& corridor);
48
private:
49 50 51 52
    // Member Methodes
    void init();

    // Members
53 54
    QGeoCoordinate      _takeOffPosition;
    QGeoCoordinate      _landPosition;
55 56
};