Map API refactoring
[GPXSee.git] / src / map / mapfile.h
blob53d9c257826420438284a2f5676b1769e83f8ac3
1 #ifndef MAPFILE_H
2 #define MAPFILE_H
4 #include "transform.h"
5 #include "projection.h"
6 #include "calibrationpoint.h"
8 class QIODevice;
9 class GCS;
11 class MapFile
13 public:
14 MapFile(QIODevice &file);
16 bool isValid() const
17 {return !_image.isNull() && _projection.isValid() && _transform.isValid();}
18 const QString &errorString() const {return _errorString;}
20 const Projection &projection() const {return _projection;}
21 const Transform &transform() const {return _transform;}
23 const QString &name() const {return _name;}
24 const QString &image() const {return _image;}
25 const QSize &size() const {return _size;}
27 private:
28 int parse(QIODevice &device, QList<CalibrationPoint> &points,
29 QString &projection, Projection::Setup &setup, QString &datum);
30 bool parseMapFile(QIODevice &device, QList<CalibrationPoint> &points,
31 QString &projection, Projection::Setup &setup, QString &datum);
32 bool createProjection(const QString &datum, const QString &projection,
33 const Projection::Setup &setup);
34 bool computeTransformation(const QList<CalibrationPoint> &points);
36 QString _name;
37 QString _image;
38 QSize _size;
40 Projection _projection;
41 Transform _transform;
43 QString _errorString;
46 #endif // MAPFILE_H