WimaPlanData.h 1.77 KB
Newer Older
1 2
#pragma once

3
#include <QGeoCoordinate>
4 5
#include <QObject>

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

13 14
class WimaPlanData : public QObject {
  Q_OBJECT
15
public:
16 17 18 19 20
  WimaPlanData(QObject *parent = nullptr);
  WimaPlanData(const WimaPlanData &other, QObject *parent = nullptr);
  WimaPlanData &operator=(const WimaPlanData &other);

  // Member Methodes
21 22 23 24
  void set(const WimaJoinedAreaData &areaData);
  void set(const WimaServiceAreaData &areaData);
  void set(const WimaCorridorData &areaData);
  void set(const WimaMeasurementAreaData &areaData);
Valentin Platzgummer's avatar
Valentin Platzgummer committed
25 26 27 28 29

  void set(const WimaJoinedArea &areaData);
  void set(const WimaServiceArea &areaData);
  void set(const WimaCorridor &areaData);
  void set(const WimaMeasurementArea &areaData);
30 31
  void clear();

32 33 34 35 36
  const WimaJoinedAreaData &joinedArea() const;
  const WimaServiceAreaData &serviceArea() const;
  const WimaCorridorData &corridor() const;
  const WimaMeasurementAreaData &measurementArea() const;

37 38 39 40 41 42 43
  WimaJoinedAreaData &joinedArea();
  WimaServiceAreaData &serviceArea();
  WimaCorridorData &corridor();
  WimaMeasurementAreaData &measurementArea();

  QGeoCoordinate origin();
  bool isValid();
44

45 46 47
  bool operator==(const WimaPlanData &other) const;
  bool operator!=(const WimaPlanData &other) const;

48
signals:
49 50 51 52
  void joinedAreaChanged();
  void serviceAreaChanged();
  void corridorChanged();
  void measurementAreaChanged();
53
  void originChanged();
54 55

private:
56
  void setOrigin(const QGeoCoordinate &origin);
57

58 59 60 61
  WimaJoinedAreaData _joinedArea;
  WimaServiceAreaData _serviceArea;
  WimaCorridorData _corridor;
  WimaMeasurementAreaData _measurementArea;
62

63
  QGeoCoordinate _origin;
64
};