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

3
AreaData::AreaData(QObject *parent) : QObject(parent) {}
4

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

10
AreaData &AreaData::operator=(const AreaData &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
void AreaData::set(const WimaJoinedAreaData &areaData) {
20 21
  if (_joinedArea != areaData) {
    _joinedArea = areaData;
22
    emit joinedAreaChanged();
23 24
  }
}
25

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

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

40
void AreaData::set(const WimaMeasurementAreaData &areaData) {
41 42
  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
void AreaData::set(const WimaJoinedArea &areaData) {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
54 55 56 57 58 59
  if (_joinedArea != areaData) {
    _joinedArea = areaData;
    emit joinedAreaChanged();
  }
}

60
void AreaData::set(const WimaServiceArea &areaData) {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
61 62 63 64 65 66
  if (_serviceArea != areaData) {
    _serviceArea = areaData;
    emit serviceAreaChanged();
  }
}

67
void AreaData::set(const WimaCorridor &areaData) {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
68 69 70 71 72 73
  if (_corridor != areaData) {
    _corridor = areaData;
    emit corridorChanged();
  }
}

74
void AreaData::set(const WimaMeasurementArea &areaData) {
Valentin Platzgummer's avatar
Valentin Platzgummer committed
75 76 77 78 79 80 81 82 83 84 85 86
  if (_measurementArea != areaData) {
    _measurementArea = areaData;
    emit measurementAreaChanged();

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

87
void AreaData::clear() { *this = AreaData(); }
88

89
QGeoCoordinate AreaData::origin() { return _origin; }
90

91
bool AreaData::isValid() {
92 93
  return _measurementArea.coordinateList().size() >= 3 &&
         _serviceArea.coordinateList().size() >= 3 && _origin.isValid();
94
}
95

96
const WimaJoinedAreaData &AreaData::joinedArea() const {
97 98 99
  return this->_joinedArea;
}

100
const WimaServiceAreaData &AreaData::serviceArea() const {
101
  return this->_serviceArea;
102 103
}

104
const WimaCorridorData &AreaData::corridor() const {
105 106 107
  return this->_corridor;
}

108
const WimaMeasurementAreaData &AreaData::measurementArea() const {
109 110
  return this->_measurementArea;
}
111

112
WimaJoinedAreaData &AreaData::joinedArea() { return this->_joinedArea; }
113

114
WimaServiceAreaData &AreaData::serviceArea() { return this->_serviceArea; }
115

116
WimaCorridorData &AreaData::corridor() { return this->_corridor; }
117

118
WimaMeasurementAreaData &AreaData::measurementArea() {
119
  return this->_measurementArea;
120 121
}

122
bool AreaData::operator==(const AreaData &other) const {
123 124 125 126
  return this->_joinedArea == other._joinedArea &&
         this->_measurementArea == other._measurementArea &&
         this->_corridor == other._corridor &&
         this->_serviceArea == other._serviceArea;
127
}
128
bool AreaData::operator!=(const AreaData &other) const {
129
  return !(*this == other);
130 131
}

132
void AreaData::setOrigin(const QGeoCoordinate &origin) {
133 134 135
  if (this->_origin != origin) {
    this->_origin = origin;
    emit originChanged();
136 137
  }
}