WimaController.h 2.39 KB
Newer Older
Valentin Platzgummer's avatar
Valentin Platzgummer committed
1
#ifndef WIMACONTROLLER_H
2 3 4
#define WIMACONTROLLER_H

#include <QObject>
Valentin Platzgummer's avatar
Valentin Platzgummer committed
5
#include "QGCMapPolygon.h"
6 7 8 9 10
#include "WimaPolygon.h"
#include "WimaGlobalMeasurementPolygon.h"
#include "WimaServicePolygon.h"
#include "WimaPolygonContainer.h"

11 12
#include "PlanMasterController.h"
#include "MissionController.h"
13

14

15 16 17 18
class WimaController : public QObject
{
    Q_OBJECT
public:
19
    WimaController(QObject *parent = nullptr);
20

21

22 23
    Q_PROPERTY(PlanMasterController*    masterController        READ masterController           WRITE setMasterController           NOTIFY masterControllerChanged)
    Q_PROPERTY(MissionController*       missionController       READ missionController          WRITE setMissionController          NOTIFY missionControllerChanged)
24 25
    Q_PROPERTY(QList<WimaPolygon*>&     visualItems             READ visualItems                                                    NOTIFY visualItemsChanged)
    Q_PROPERTY(QList<WimaPolygon*>&     editorItems             READ editorItems                                                    NOTIFY visualItemsChanged)
Valentin Platzgummer's avatar
Valentin Platzgummer committed
26

27 28 29
    // Property accessors
    PlanMasterController*       masterController       (void) const    { return _masterController;}
    MissionController*          missionController      (void) const    { return _missionController;}
30
    QList<WimaPolygon*>&        visualItems            (void)          { return _visualItemsContainer.returnFlatList(); }
31

Valentin Platzgummer's avatar
Valentin Platzgummer committed
32 33


34

35 36 37
    // Property setters
    void setMasterController        (PlanMasterController* masterController);
    void setMissionController       (MissionController* missionController);
38

39
    Q_INVOKABLE void addGlobalMeasurementArea();
40
    Q_INVOKABLE void removeArea(int index);
41 42 43 44 45 46 47 48 49
    Q_INVOKABLE void addServiceArea();

    Q_INVOKABLE void startMission();
    Q_INVOKABLE void abortMission();
    Q_INVOKABLE void pauseMission();
    Q_INVOKABLE void resumeMission();

    Q_INVOKABLE void saveMission();
    Q_INVOKABLE void loadMission();
50

Valentin Platzgummer's avatar
Valentin Platzgummer committed
51

52 53 54 55 56 57

signals:
    void masterControllerChanged        (void);
    void missionControllerChanged       (void);
    void visualItemsChanged             (void);

58 59 60 61 62
private slots:
    void recalcVehicleCorridor();
    void recalcVehicleMeasurementAreas();
    void recalcAll();

Valentin Platzgummer's avatar
Valentin Platzgummer committed
63 64

private:
65
    bool                        _planView;
66
    QList<WimaPolygon*>         _visualItems;
67 68
    PlanMasterController*       _masterController;
    MissionController*          _missionController;
69

70 71
};

Valentin Platzgummer's avatar
Valentin Platzgummer committed
72
#endif // WIMACONTROLLER_H