QCAD Application Framework
CAD Application Development and Automation.
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dl_creationinterface.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2001-2011 RibbonSoft. All rights reserved.
3 **
4 ** This file is part of the dxflib project.
5 **
6 ** This file may be distributed and/or modified under the terms of the
7 ** GNU General Public License version 2 as published by the Free Software
8 ** Foundation and appearing in the file LICENSE.GPL included in the
9 ** packaging of this file.
10 **
11 ** Licensees holding valid dxflib Professional Edition licenses may use
12 ** this file in accordance with the dxflib Commercial License
13 ** Agreement provided with the Software.
14 **
15 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
17 **
18 ** See http://www.ribbonsoft.com for further details.
19 **
20 ** Contact info@ribbonsoft.com if any conditions of this licensing are
21 ** not clear to you.
22 **
23 **********************************************************************/
24 
25 #ifndef DL_CREATIONINTERFACE_H
26 #define DL_CREATIONINTERFACE_H
27 
28 #include <string.h>
29 
30 #include "dl_attributes.h"
31 #include "dl_codes.h"
32 #include "dl_entities.h"
33 #include "dl_extrusion.h"
34 
46 public:
48  extrusion = new DL_Extrusion;
49  }
51  delete extrusion;
52  }
53 
58  virtual void processCodeValuePair(unsigned int groupCode, char* groupValue) = 0;
59 
63  virtual void addLayer(const DL_LayerData& data) = 0;
64 
71  virtual void addBlock(const DL_BlockData& data) = 0;
72 
74  virtual void endBlock() = 0;
75 
77  virtual void addPoint(const DL_PointData& data) = 0;
78 
80  virtual void addLine(const DL_LineData& data) = 0;
81 
83  virtual void addArc(const DL_ArcData& data) = 0;
84 
86  virtual void addCircle(const DL_CircleData& data) = 0;
87 
89  virtual void addEllipse(const DL_EllipseData& data) = 0;
90 
92  virtual void addPolyline(const DL_PolylineData& data) = 0;
93 
95  virtual void addVertex(const DL_VertexData& data) = 0;
96 
98  virtual void addSpline(const DL_SplineData& data) = 0;
99 
101  virtual void addControlPoint(const DL_ControlPointData& data) = 0;
102 
104  virtual void addKnot(const DL_KnotData& data) = 0;
105 
107  virtual void addInsert(const DL_InsertData& data) = 0;
108 
110  virtual void addTrace(const DL_TraceData& data) = 0;
111 
113  virtual void add3dFace(const DL_3dFaceData& data) = 0;
114 
116  virtual void addSolid(const DL_SolidData& data) = 0;
117 
118 
120  virtual void addMText(const DL_MTextData& data) = 0;
121 
127  virtual void addMTextChunk(const char* text) = 0;
128 
130  virtual void addText(const DL_TextData& data) = 0;
131 
135  virtual void addDimAlign(const DL_DimensionData& data,
136  const DL_DimAlignedData& edata) = 0;
140  virtual void addDimLinear(const DL_DimensionData& data,
141  const DL_DimLinearData& edata) = 0;
142 
146  virtual void addDimRadial(const DL_DimensionData& data,
147  const DL_DimRadialData& edata) = 0;
148 
152  virtual void addDimDiametric(const DL_DimensionData& data,
153  const DL_DimDiametricData& edata) = 0;
154 
158  virtual void addDimAngular(const DL_DimensionData& data,
159  const DL_DimAngularData& edata) = 0;
160 
164  virtual void addDimAngular3P(const DL_DimensionData& data,
165  const DL_DimAngular3PData& edata) = 0;
166 
170  virtual void addDimOrdinate(const DL_DimensionData& data,
171  const DL_DimOrdinateData& edata) = 0;
172 
176  virtual void addLeader(const DL_LeaderData& data) = 0;
177 
181  virtual void addLeaderVertex(const DL_LeaderVertexData& data) = 0;
182 
186  virtual void addHatch(const DL_HatchData& data) = 0;
187 
191  virtual void addImage(const DL_ImageData& data) = 0;
192 
196  virtual void linkImage(const DL_ImageDefData& data) = 0;
197 
201  virtual void addHatchLoop(const DL_HatchLoopData& data) = 0;
202 
206  virtual void addHatchEdge(const DL_HatchEdgeData& data) = 0;
207 
211  virtual void endEntity() = 0;
212 
216  virtual void addComment(const char* comment) = 0;
217 
221  virtual void setVariableVector(const char* key,
222  double v1, double v2, double v3, int code) = 0;
223 
227  virtual void setVariableString(const char* key, const char* value, int code) = 0;
228 
232  virtual void setVariableInt(const char* key, int value, int code) = 0;
233 
237  virtual void setVariableDouble(const char* key, double value, int code) = 0;
238 
242  virtual void endSequence() = 0;
243 
245  void setAttributes(const DL_Attributes& attrib) {
246  attributes = attrib;
247  }
248 
251  return attributes;
252  }
253 
255  void setExtrusion(double dx, double dy, double dz, double elevation) {
256  extrusion->setDirection(dx, dy, dz);
257  extrusion->setElevation(elevation);
258  }
259 
262  return extrusion;
263  }
264 
265 protected:
268 };
269 
270 #endif