QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
RDwgImporter.h
Go to the documentation of this file.
1 #ifndef RDWGIMPORTER_H
2 #define RDWGIMPORTER_H
3 
4 #include "RDocument.h"
5 #include "RDwgServices.h"
6 #include "RFileImporter.h"
7 #include "RMessageHandler.h"
8 #include "RProgressHandler.h"
9 
10 
11 class QTemporaryFile;
12 
13 class RVector;
14 class RDwgImporter;
15 class RDimensionData;
16 
17 
21 class RDwgEntityImporter : public OdRxObject {
22 public:
24 
25  virtual void import(RDwgImporter& importer, OdDbEntity* odEntity) const {
26  //Q_UNUSED(importer)
27  Q_UNUSED(odEntity)
28  }
29 
30  virtual void importCommon(RDwgImporter& importer,
31  OdDbEntity* odEntity,
32  QSharedPointer<REntity> entity) const;
33 
34  virtual void importXData(OdDbEntity* odEntity,
35  QSharedPointer<REntity> entity) const;
36 
37  virtual void importDimCommon(RDwgImporter& importer,
38  OdDbDimension* odDimension,
39  RDimensionData& dimData) const;
40 };
41 
42 
44 public:
45  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
46 };
47 
49 public:
50  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
51 };
52 
54 public:
55  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
56 };
57 
59 public:
60  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
61 };
62 
64 public:
65  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
66 };
67 
69 public:
70  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
71 };
72 
74 public:
75  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
76 };
77 
79 public:
80  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
81 };
82 
84 public:
85  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
86 };
87 
89 public:
90  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
91 };
92 
94 public:
95  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
96 };
97 
99 public:
100  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
101 };
102 
104 public:
105  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
106 };
107 
109 public:
110  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
111 };
112 
114 public:
115  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
116 };
117 
119 public:
120  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
121 };
122 
124 public:
125  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
126 };
127 
129 public:
130  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
131 };
132 
134 public:
135  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
136 };
137 
139 public:
140  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
141 };
142 
144 public:
145  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
146 };
147 
149 public:
150  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
151 };
152 
154 public:
155  void import(RDwgImporter& importer, OdDbEntity* odEntity) const;
156 };
157 
158 
165 class RDwgImporter : public RFileImporter {
166  friend class RDwgEntityImporter;
167 
168 public:
170  virtual ~RDwgImporter();
171 
172  static void registerFileImporter();
180  static bool check(const QString& fileName, const QString& nameFilter);
181 
182  static QStringList getFilterStrings();
183 
184  virtual bool importFile(const QString& fileName);
185 
186  bool getQCad1Compatibility() const {
187  return qcad1Compatibility;
188  }
189  bool getQCad2Compatibility() const {
190  return qcad2Compatibility;
191  }
192 
193  void fixQCad2String(QString& str) const;
194  void detectQCad2Format(const QString& fileName);
195  QTemporaryFile* collectQCad2Info(const QString& fileName);
196  QString getQCad2LayerName(const QString& layerName) const;
197  QString getQCad2BlockName(const QString& blockName) const;
198  QString getQCad2Font(const QString& handle) const;
199  QString getQCad2DimensionLabel(const QString& handle) const;
200  double getQCad2PatternAngle(double angle, const QString& patternName) const;
201  double getQCad2PatternScale(double scale, const QString& patternName) const;
202  QString getQCad2PatternName(const QString& patternName) const;
203  QString getFontName(const QString& typeFace, const QString& fontFile, const QString& handle) const;
204 
205 protected:
206  void importHeader(OdDbDatabase* pDb);
207  void importSettings(OdDbDatabase* pDb);
208  void importSetting(OdDbObjectId id, OdString itemName);
209  void importXData(OdString name, OdResBuf* resbuf);
210  void importBlocks(OdDbDatabase* pDb);
211  void importEntity(OdDbObjectId id);
212  void importEntities(OdDbDatabase* pDb);
213  void importEntities(OdDbDatabase* pDb, OdDbBlockTableRecordPtr& pBlock);
214  void importLayers(OdDbDatabase* pDb);
215  void importLinetypes(OdDbDatabase* pDb);
216  void importViews(OdDbDatabase* pDb);
217 
218 
219 private:
225  QMap<OdDbObjectId, RLinetype::Id> lineTypeIdMapping;
226  QMap<QString, QString> qcad2BlockMapping;
227  QMap<QString, QString> qcad2LayerMapping;
228  QMap<QString, QString> qcad2TextFonts;
229  QMap<QString, QString> qcad2DimensionLabels;
230  QStringList lockedLayers;
231 };
232 
234 
235 #endif