WimaPlanData.h 1.29 KB
Newer Older
1 2 3 4
#pragma once

#include <QObject>

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

12 13
class WimaPlanData : public QObject {
  Q_OBJECT
14
public:
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
  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);
  void append(const WimaMeasurementAreaData &areaData);
  //!
  //! \brief append
  //! \param missionItems
  //! \note Takes owenership of MissionItems*
  void append(const QList<MissionItem *> &missionItems);
  void clear();

  const QList<const WimaAreaData *> &areaList() const;
32
  const QList<MissionItem *> &missionItems() const;
33 34

signals:
35
  void areaListChanged();
36

37
private:
38
  void _clearAndDeleteMissionItems();
39

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

47
  QList<MissionItem *> _missionItems;
48
};