WimaPlanData.h 1.43 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 21 22 23
  WimaPlanData(QObject *parent = nullptr);
  WimaPlanData(const WimaPlanData &other, QObject *parent = nullptr);
  WimaPlanData &operator=(const WimaPlanData &other);

  // Member Methodes
  void append(const WimaJoinedAreaData &areaData);
  void append(const WimaServiceAreaData &areaData);
  void append(const WimaCorridorData &areaData);
24
  void append(const WimaMeasurementAreaData &areaData);
25 26

  void setTransects(const QList<QList<QGeoCoordinate>> &transects);
27 28 29 30 31 32 33 34
  //!
  //! \brief append
  //! \param missionItems
  //! \note Takes owenership of MissionItems*
  void append(const QList<MissionItem *> &missionItems);
  void clear();

  const QList<const WimaAreaData *> &areaList() const;
35
  const QList<QList<QGeoCoordinate>> &transects() const;
36
  const QList<MissionItem *> &missionItems() const;
37 38

signals:
39
  void areaListChanged();
40 41

private:
42 43 44 45 46
  WimaJoinedAreaData _joinedArea;
  WimaServiceAreaData _serviceArea;
  WimaCorridorData _corridor;
  WimaMeasurementAreaData _measurementArea;
  QList<const WimaAreaData *> _areaList;
47

48
  QList<QList<QGeoCoordinate>> _transects;
49
  QList<MissionItem *> _missionItems;
50
};