WimaPlanData.cc 3.49 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
}

Valentin Platzgummer's avatar
Valentin Platzgummer committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86
void WimaPlanData::set(const WimaJoinedArea &areaData) {
  if (_joinedArea != areaData) {
    _joinedArea = areaData;
    emit joinedAreaChanged();
  }
}

void WimaPlanData::set(const WimaServiceArea &areaData) {
  if (_serviceArea != areaData) {
    _serviceArea = areaData;
    emit serviceAreaChanged();
  }
}

void WimaPlanData::set(const WimaCorridor &areaData) {
  if (_corridor != areaData) {
    _corridor = areaData;
    emit corridorChanged();
  }
}

void WimaPlanData::set(const WimaMeasurementArea &areaData) {
  if (_measurementArea != areaData) {
    _measurementArea = areaData;
    emit measurementAreaChanged();

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

87 88 89 90 91 92 93
void WimaPlanData::clear() { *this = WimaPlanData(); }

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

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

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

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

104 105 106 107 108 109 110
const WimaCorridorData &WimaPlanData::corridor() const {
  return this->_corridor;
}

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

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

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

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

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

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

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