| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| #ifndef DWGREADER21_H |
| #define DWGREADER21_H |
|
|
| #include <vector> |
| #include "drw_textcodec.h" |
| #include "dwgbuffer.h" |
| #include "dwgreader.h" |
|
|
| |
| class dwgReader21 : public dwgReader { |
| public: |
| dwgReader21(std::ifstream *stream, dwgR *p):dwgReader(stream, p){ |
| } |
| bool readMetaData() override; |
| bool readFileHeader() override; |
| bool readDwgHeader(DRW_Header& hdr) override; |
| bool readDwgClasses() override; |
| bool readDwgHandles() override; |
| bool readDwgTables(DRW_Header& hdr) override; |
| bool readDwgBlocks(DRW_Interface& intfa) override; |
| bool readDwgEntities(DRW_Interface& intfa) override { |
| bool ret = true; |
| dwgBuffer dataBuf( objData.get(), dataSize, &decoder); |
| ret = dwgReader::readDwgEntities(intfa, &dataBuf); |
| return ret; |
| } |
| bool readDwgObjects(DRW_Interface& intfa) override { |
| bool ret = true; |
| dwgBuffer dataBuf( objData.get(), dataSize, &decoder); |
| ret = dwgReader::readDwgObjects(intfa, &dataBuf); |
| return ret; |
| } |
| |
| |
| |
|
|
| private: |
| bool parseSysPage(duint64 sizeCompressed, duint64 sizeUncompressed, duint64 correctionFactor, duint64 offset, duint8 *decompData); |
| bool parseDataPage(const dwgSectionInfo &si, duint8 *dData); |
|
|
| std::unique_ptr<duint8 []> objData; |
| duint64 dataSize {0}; |
|
|
| }; |
|
|
| #endif |
|
|