WimaPlanData.cc 2.7 KB
Newer Older
1 2
#include "WimaPlanData.h"

3
WimaPlanData::WimaPlanData(QObject *parent) : QObject(parent) {}
4 5

WimaPlanData::WimaPlanData(const WimaPlanData &other, QObject *parent)
6
    : QObject(parent) {
7
  *this = other;
8 9
}

10
WimaPlanData &WimaPlanData::operator=(const WimaPlanData &other) {
11 12 13 14
  this->set(other.measurementArea());
  this->set(other.serviceArea());
  this->set(other.joinedArea());
  this->set(other.corridor());
15

16
  return *this;
17 18
}

19 20 21
void WimaPlanData::set(const WimaJoinedAreaData &areaData) {
  if (_joinedArea != areaData) {
    _joinedArea = areaData;
22
    emit joinedAreaChanged();
23 24
  }
}
25

26 27 28
void WimaPlanData::set(const WimaServiceAreaData &areaData) {
  if (_serviceArea != areaData) {
    _serviceArea = areaData;
29
    emit serviceAreaChanged();
30
  }
31 32
}

33 34 35
void WimaPlanData::set(const WimaCorridorData &areaData) {
  if (_corridor != areaData) {
    _corridor = areaData;
36
    emit corridorChanged();
37 38
  }
}
39

40 41 42
void WimaPlanData::set(const WimaMeasurementAreaData &areaData) {
  if (_measurementArea != areaData) {
    _measurementArea = areaData;
43 44 45 46 47 48 49
    emit measurementAreaChanged();

    if (_measurementArea.coordinateList().size() > 0) {
      setOrigin(_measurementArea.coordinateList().first());
    } else {
      setOrigin(QGeoCoordinate());
    }
50
  }
51 52
}

53 54 55 56 57 58 59
void WimaPlanData::clear() { *this = WimaPlanData(); }

QGeoCoordinate WimaPlanData::origin() { return _origin; }

bool WimaPlanData::isValid() {
  return _measurementArea.coordinateList().size() >= 3 &&
         _serviceArea.coordinateList().size() >= 3 && _origin.isValid();
60
}
61

62 63 64 65 66 67
const WimaJoinedAreaData &WimaPlanData::joinedArea() const {
  return this->_joinedArea;
}

const WimaServiceAreaData &WimaPlanData::serviceArea() const {
  return this->_serviceArea;
68 69
}

70 71 72 73 74 75 76
const WimaCorridorData &WimaPlanData::corridor() const {
  return this->_corridor;
}

const WimaMeasurementAreaData &WimaPlanData::measurementArea() const {
  return this->_measurementArea;
}
77

78
WimaJoinedAreaData &WimaPlanData::joinedArea() { return this->_joinedArea; }
79

80 81 82
WimaServiceAreaData &WimaPlanData::serviceArea() { return this->_serviceArea; }

WimaCorridorData &WimaPlanData::corridor() { return this->_corridor; }
83

84 85
WimaMeasurementAreaData &WimaPlanData::measurementArea() {
  return this->_measurementArea;
86 87
}

88 89 90 91 92
bool WimaPlanData::operator==(const WimaPlanData &other) const {
  return this->_joinedArea == other._joinedArea &&
         this->_measurementArea == other._measurementArea &&
         this->_corridor == other._corridor &&
         this->_serviceArea == other._serviceArea;
93
}
94 95
bool WimaPlanData::operator!=(const WimaPlanData &other) const {
  return !(*this == other);
96 97
}

98 99 100 101
void WimaPlanData::setOrigin(const QGeoCoordinate &origin) {
  if (this->_origin != origin) {
    this->_origin = origin;
    emit originChanged();
102 103
  }
}