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