WimaController.h 2.36 KB
Newer Older
1
#pragma once
2 3

#include <QObject>
Valentin Platzgummer's avatar
Valentin Platzgummer committed
4

5
#include "QGCMapPolygon.h"
6
#include "QmlObjectListModel.h"
7

8
#include "Geometry/WimaCorridorData.h"
9
#include "Geometry/WimaJoinedAreaData.h"
10
#include "Geometry/WimaMeasurementAreaData.h"
11
#include "Geometry/WimaServiceAreaData.h"
12

13
#include "SettingsFact.h"
14

15 16
class MissionController;
class PlanMasterController;
Valentin Platzgummer's avatar
Valentin Platzgummer committed
17

18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
class WimaController : public QObject {
  Q_OBJECT
public:
  WimaController(QObject *parent = nullptr);

  // Controllers.
  Q_PROPERTY(PlanMasterController *masterController READ masterController WRITE
                 setMasterController NOTIFY masterControllerChanged)
  Q_PROPERTY(MissionController *missionController READ missionController WRITE
                 setMissionController NOTIFY missionControllerChanged)
  // Wima Data.
  Q_PROPERTY(QmlObjectListModel *visualItems READ visualItems NOTIFY
                 visualItemsChanged)
  Q_PROPERTY(Fact *enableWimaController READ enableWimaController CONSTANT)

  // Controllers.
  PlanMasterController *masterController(void);
  MissionController *missionController(void);
36

37 38 39
  // Wima Data
  QmlObjectListModel *visualItems(void);
  QGCMapPolygon joinedArea(void) const;
40

41 42 43 44 45 46 47 48 49 50 51
  // Settings facts.
  Fact *enableWimaController(void);

  // Property setters
  void setMasterController(PlanMasterController *masterController);
  void setMissionController(MissionController *missionController);

  // static Members
  static const char *areaItemsName;
  static const char *settingsGroup;
  static const char *enableWimaControllerName;
52

53
signals:
54 55 56 57 58
  // Controllers.
  void masterControllerChanged(void);
  void missionControllerChanged(void);
  // Wima data.
  void visualItemsChanged(void);
59

60
private slots:
61 62
  void planDataChangedHandler();
  void progressChangedHandler();
63 64

private:
65 66 67 68 69 70
  // Controllers.
  PlanMasterController *_masterController;
  MissionController *_missionController;

  // Wima Data.
  QmlObjectListModel _areas; // contains all visible areas
71 72
  // joined area fromed by opArea, serArea, _corridor
  WimaJoinedAreaData _joinedArea;
73 74 75
  WimaMeasurementAreaData _measurementArea; // measurement area
  WimaServiceAreaData _serviceArea;         // area for supplying
  WimaCorridorData _corridor; // corridor connecting opArea and serArea
76
  bool _planDataValid;
77 78 79 80

  // Settings Facts.
  QMap<QString, FactMetaData *> _metaDataMap;
  SettingsFact _enableWimaController; // enables or disables the wimaControler
81
};