29 public: |
29 public: |
30 enum { EndOfModel = -1 }; |
30 enum { EndOfModel = -1 }; |
31 Parser(QIODevice& device, QObject* parent = nullptr); |
31 Parser(QIODevice& device, QObject* parent = nullptr); |
32 LDHeader parseHeader(Winding& winding); |
32 LDHeader parseHeader(Winding& winding); |
33 void parseBody(Model::EditContext& editor); |
33 void parseBody(Model::EditContext& editor); |
34 static std::unique_ptr<linetypes::Object> parseFromString(QString line); |
34 static std::unique_ptr<ldraw::Object> parseFromString(QString line); |
35 private: |
35 private: |
36 enum HeaderParseResult {ParseSuccess, ParseFailure, StopParsing}; |
36 enum HeaderParseResult {ParseSuccess, ParseFailure, StopParsing}; |
37 QString readLine(); |
37 QString readLine(); |
38 HeaderParseResult parseHeaderLine(LDHeader& header, Winding& winding, const QString& line); |
38 HeaderParseResult parseHeaderLine(LDHeader& header, Winding& winding, const QString& line); |
39 QIODevice& device; |
39 QIODevice& device; |