00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _CIvfDxfReader_h_
00026 #define _CIvfDxfReader_h_
00027
00028 #include <ivffile/IvfFileReader.h>
00029
00030 #include <ivf/IvfIndex.h>
00031
00041 class IVFFILE_API CIvfDxfReader : public CIvfFileReader {
00042 private:
00043 std::string m_row;
00044 int m_faceCount;
00045 CIvfIndex* m_idx;
00046 bool m_doubleFaces;
00047 std::vector<CIvfIndex*> m_faceIndex;
00048 void read3DFace(std::istream &in);
00049 bool findKey(const char* heading, std::istream &in);
00050 bool readData(std::istream &in);
00051 bool checkHeader(std::istream &in);
00052 public:
00054 CIvfDxfReader();
00055
00057 virtual ~CIvfDxfReader();
00058
00059 void correctFaceNormals();
00060
00062 void setDoubleFaces(bool flag);
00063
00065 virtual void read();
00066 };
00067
00068 #endif