1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2012 Cezar Mocan <mocancezar@gmail.com> 4 5 #ifndef MARBLEPN2RUNNER_H 6 #define MARBLEPN2RUNNER_H 7 8 #include "ParsingRunner.h" 9 10 #include <QDataStream> 11 12 13 namespace Marble 14 { 15 16 class GeoDataLineString; 17 18 class Pn2Runner : public ParsingRunner 19 { 20 Q_OBJECT 21 public: 22 explicit Pn2Runner(QObject *parent = nullptr); 23 ~Pn2Runner() override; 24 GeoDataDocument* parseFile( const QString &fileName, DocumentRole role, QString& error ) override; 25 26 private: 27 static bool errorCheckLat( qint16 lat ); 28 static bool errorCheckLon( qint16 lon ); 29 static bool importPolygon( QDataStream &stream, GeoDataLineString* linestring, quint32 nrAbsoluteNodes ); 30 31 GeoDataDocument* parseForVersion1( const QString &fileName, DocumentRole role ); 32 GeoDataDocument* parseForVersion2( const QString &fileName, DocumentRole role ); 33 34 QDataStream m_stream; 35 quint8 m_fileHeaderVersion; 36 quint32 m_fileHeaderPolygons; 37 bool m_isMapColorField; // Whether the file contains color indexes 38 }; 39 40 } 41 #endif // MARBLEPN2RUNNER_H 42