16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
16 * along with this program. If not, see <http://www.gnu.org/licenses/>. |
17 */ |
17 */ |
18 |
18 |
19 #pragma once |
19 #pragma once |
20 #include "main.h" |
20 #include "main.h" |
21 #include "linetypes/object.h" |
|
22 #include "model.h" |
21 #include "model.h" |
23 #include "modeleditor.h" |
|
24 #include "header.h" |
|
25 |
22 |
26 class Parser : public QObject |
23 class Parser : public QObject |
27 { |
24 { |
28 Q_OBJECT |
25 Q_OBJECT |
29 public: |
26 public: |
30 enum { EndOfModel = -1 }; |
|
31 Parser(QIODevice& device, QObject* parent = nullptr); |
27 Parser(QIODevice& device, QObject* parent = nullptr); |
32 void parseBody(Model &model); |
28 void parseBody(Model &model); |
33 static std::unique_ptr<ldraw::Object> parseFromString(QString line); |
|
34 private: |
29 private: |
35 QString readLine(); |
30 QString readLine(); |
36 QIODevice& device; |
31 QIODevice& device; |
37 }; |
32 }; |
|
33 |
|
34 ModelElement parseLDrawLine(QString line); |