#include "WimaPlanData.h" AreaData::AreaData(QObject *parent) : QObject(parent) {} AreaData::AreaData(const AreaData &other, QObject *parent) : QObject(parent) { *this = other; } AreaData &AreaData::operator=(const AreaData &other) { this->set(other.measurementArea()); this->set(other.serviceArea()); this->set(other.joinedArea()); this->set(other.corridor()); return *this; } void AreaData::set(const WimaJoinedAreaData &areaData) { if (_joinedArea != areaData) { _joinedArea = areaData; emit joinedAreaChanged(); } } void AreaData::set(const WimaServiceAreaData &areaData) { if (_serviceArea != areaData) { _serviceArea = areaData; emit serviceAreaChanged(); } } void AreaData::set(const WimaCorridorData &areaData) { if (_corridor != areaData) { _corridor = areaData; emit corridorChanged(); } } void AreaData::set(const WimaMeasurementAreaData &areaData) { if (_measurementArea != areaData) { _measurementArea = areaData; emit measurementAreaChanged(); if (_measurementArea.coordinateList().size() > 0) { setOrigin(_measurementArea.coordinateList().first()); } else { setOrigin(QGeoCoordinate()); } } } void AreaData::set(const WimaJoinedArea &areaData) { if (_joinedArea != areaData) { _joinedArea = areaData; emit joinedAreaChanged(); } } void AreaData::set(const WimaServiceArea &areaData) { if (_serviceArea != areaData) { _serviceArea = areaData; emit serviceAreaChanged(); } } void AreaData::set(const WimaCorridor &areaData) { if (_corridor != areaData) { _corridor = areaData; emit corridorChanged(); } } void AreaData::set(const WimaMeasurementArea &areaData) { if (_measurementArea != areaData) { _measurementArea = areaData; emit measurementAreaChanged(); if (_measurementArea.coordinateList().size() > 0) { setOrigin(_measurementArea.coordinateList().first()); } else { setOrigin(QGeoCoordinate()); } } } void AreaData::clear() { *this = AreaData(); } QGeoCoordinate AreaData::origin() { return _origin; } bool AreaData::isValid() { return _measurementArea.coordinateList().size() >= 3 && _serviceArea.coordinateList().size() >= 3 && _origin.isValid(); } const WimaJoinedAreaData &AreaData::joinedArea() const { return this->_joinedArea; } const WimaServiceAreaData &AreaData::serviceArea() const { return this->_serviceArea; } const WimaCorridorData &AreaData::corridor() const { return this->_corridor; } const WimaMeasurementAreaData &AreaData::measurementArea() const { return this->_measurementArea; } WimaJoinedAreaData &AreaData::joinedArea() { return this->_joinedArea; } WimaServiceAreaData &AreaData::serviceArea() { return this->_serviceArea; } WimaCorridorData &AreaData::corridor() { return this->_corridor; } WimaMeasurementAreaData &AreaData::measurementArea() { return this->_measurementArea; } bool AreaData::operator==(const AreaData &other) const { return this->_joinedArea == other._joinedArea && this->_measurementArea == other._measurementArea && this->_corridor == other._corridor && this->_serviceArea == other._serviceArea; } bool AreaData::operator!=(const AreaData &other) const { return !(*this == other); } void AreaData::setOrigin(const QGeoCoordinate &origin) { if (this->_origin != origin) { this->_origin = origin; emit originChanged(); } }