#ifndef DATUM_H #define DATUM_H #include #include "ellipsoid.h" class Datum { public: Datum() : _ellipsoid(Ellipsoid()), _dx(0), _dy(0), _dz(0) {} Datum(const Ellipsoid &ellipsoid, double dx, double dy, double dz) : _ellipsoid(ellipsoid), _dx(dx), _dy(dy), _dz(dz) {} const Ellipsoid &ellipsoid() const {return _ellipsoid;} double dx() const {return _dx;} double dy() const {return _dy;} double dz() const {return _dz;} bool isNull() const {return _ellipsoid.isNull();} bool isWGS84() const {return _ellipsoid.isWGS84() && _dx == 0 && _dy == 0 && _dz == 0;} static bool loadList(const QString &path); static const QString &errorString() {return _errorString;} static int errorLine() {return _errorLine;} static Datum datum(const QString &name); private: Ellipsoid _ellipsoid; double _dx, _dy, _dz; static QMap _datums; static QString _errorString; static int _errorLine; }; #endif // DATUM_H