ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
dl_creationinterface.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2001-2013 RibbonSoft, GmbH. All rights reserved.
3 **
4 ** This file is part of the dxflib project.
5 **
6 ** This file is free software; you can redistribute it and/or modify
7 ** it under the terms of the GNU General Public License as published by
8 ** the Free Software Foundation; either version 2 of the License, or
9 ** (at your option) any later version.
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 #include "dl_global.h"
35 
47 public:
48  DL_CreationInterface() { extrusion = new DL_Extrusion; }
49  virtual ~DL_CreationInterface() { delete extrusion; }
50 
55  virtual void processCodeValuePair(unsigned int groupCode,
56  const std::string& groupValue) = 0;
57 
61  virtual void endSection() = 0;
62 
66  virtual void addLayer(const DL_LayerData& data) = 0;
67 
71  virtual void addLinetype(const DL_LinetypeData& data) = 0;
72 
76  virtual void addLinetypeDash(double length) = 0;
77 
84  virtual void addBlock(const DL_BlockData& data) = 0;
85 
87  virtual void endBlock() = 0;
88 
90  virtual void addTextStyle(const DL_StyleData& data) = 0;
91 
93  virtual void addPoint(const DL_PointData& data) = 0;
94 
96  virtual void addLine(const DL_LineData& data) = 0;
97 
99  virtual void addXLine(const DL_XLineData& data) = 0;
100 
102  virtual void addRay(const DL_RayData& data) = 0;
103 
105  virtual void addArc(const DL_ArcData& data) = 0;
106 
108  virtual void addCircle(const DL_CircleData& data) = 0;
109 
111  virtual void addEllipse(const DL_EllipseData& data) = 0;
112 
114  virtual void addPolyline(const DL_PolylineData& data) = 0;
115 
117  virtual void addVertex(const DL_VertexData& data) = 0;
118 
120  virtual void addSpline(const DL_SplineData& data) = 0;
121 
123  virtual void addControlPoint(const DL_ControlPointData& data) = 0;
124 
126  virtual void addFitPoint(const DL_FitPointData& data) = 0;
127 
129  virtual void addKnot(const DL_KnotData& data) = 0;
130 
132  virtual void addInsert(const DL_InsertData& data) = 0;
133 
135  virtual void addTrace(const DL_TraceData& data) = 0;
136 
138  virtual void add3dFace(const DL_3dFaceData& data) = 0;
139 
141  virtual void addSolid(const DL_SolidData& data) = 0;
142 
144  virtual void addMText(const DL_MTextData& data) = 0;
145 
151  virtual void addMTextChunk(const std::string& text) = 0;
152 
154  virtual void addText(const DL_TextData& data) = 0;
155 
157  virtual void addArcAlignedText(const DL_ArcAlignedTextData& data) = 0;
158 
160  virtual void addAttribute(const DL_AttributeData& data) = 0;
161 
165  virtual void addDimAlign(const DL_DimensionData& data,
166  const DL_DimAlignedData& edata) = 0;
170  virtual void addDimLinear(const DL_DimensionData& data,
171  const DL_DimLinearData& edata) = 0;
172 
176  virtual void addDimRadial(const DL_DimensionData& data,
177  const DL_DimRadialData& edata) = 0;
178 
182  virtual void addDimDiametric(const DL_DimensionData& data,
183  const DL_DimDiametricData& edata) = 0;
184 
188  virtual void addDimAngular(const DL_DimensionData& data,
189  const DL_DimAngularData& edata) = 0;
190 
194  virtual void addDimAngular3P(const DL_DimensionData& data,
195  const DL_DimAngular3PData& edata) = 0;
196 
200  virtual void addDimOrdinate(const DL_DimensionData& data,
201  const DL_DimOrdinateData& edata) = 0;
202 
206  virtual void addLeader(const DL_LeaderData& data) = 0;
207 
211  virtual void addLeaderVertex(const DL_LeaderVertexData& data) = 0;
212 
216  virtual void addHatch(const DL_HatchData& data) = 0;
217 
221  virtual void addImage(const DL_ImageData& data) = 0;
222 
226  virtual void linkImage(const DL_ImageDefData& data) = 0;
227 
231  virtual void addHatchLoop(const DL_HatchLoopData& data) = 0;
232 
236  virtual void addHatchEdge(const DL_HatchEdgeData& data) = 0;
237 
241  virtual void addXRecord(const std::string& handle) = 0;
242 
246  virtual void addXRecordString(int code, const std::string& value) = 0;
247 
251  virtual void addXRecordReal(int code, double value) = 0;
252 
256  virtual void addXRecordInt(int code, int value) = 0;
257 
261  virtual void addXRecordBool(int code, bool value) = 0;
262 
266  virtual void addXDataApp(const std::string& appId) = 0;
267 
271  virtual void addXDataString(int code, const std::string& value) = 0;
272 
276  virtual void addXDataReal(int code, double value) = 0;
277 
281  virtual void addXDataInt(int code, int value) = 0;
282 
286  virtual void addDictionary(const DL_DictionaryData& data) = 0;
287 
292 
296  virtual void endEntity() = 0;
297 
301  virtual void addComment(const std::string& comment) = 0;
302 
306  virtual void setVariableVector(const std::string& key,
307  double v1,
308  double v2,
309  double v3,
310  int code) = 0;
311 
315  virtual void setVariableString(const std::string& key,
316  const std::string& value,
317  int code) = 0;
318 
322  virtual void setVariableInt(const std::string& key,
323  int value,
324  int code) = 0;
325 
329  virtual void setVariableDouble(const std::string& key,
330  double value,
331  int code) = 0;
332 
333 #ifdef DL_COMPAT
334  virtual void setVariableVector(
335  const char* key, double v1, double v2, double v3, int code) = 0;
336  virtual void setVariableString(const char* key,
337  const char* value,
338  int code) = 0;
339  virtual void setVariableInt(const char* key, int value, int code) = 0;
340  virtual void setVariableDouble(const char* key, double value, int code) = 0;
341  virtual void processCodeValuePair(unsigned int groupCode,
342  char* groupValue) = 0;
343  virtual void addComment(const char* comment) = 0;
344  virtual void addMTextChunk(const char* text) = 0;
345 #endif
346 
350  virtual void endSequence() = 0;
351 
353  void setAttributes(const DL_Attributes& attrib) { attributes = attrib; }
354 
356  DL_Attributes getAttributes() { return attributes; }
357 
359  void setExtrusion(double dx, double dy, double dz, double elevation) {
360  extrusion->setDirection(dx, dy, dz);
361  extrusion->setElevation(elevation);
362  }
363 
365  DL_Extrusion* getExtrusion() { return extrusion; }
366 
367 protected:
370 };
371 
372 #endif
virtual void addBlock(const DL_BlockData &data)=0
virtual void addHatchEdge(const DL_HatchEdgeData &data)=0
virtual void addDimAngular3P(const DL_DimensionData &data, const DL_DimAngular3PData &edata)=0
virtual void addEllipse(const DL_EllipseData &data)=0
virtual void add3dFace(const DL_3dFaceData &data)=0
virtual void addSolid(const DL_SolidData &data)=0
virtual void addVertex(const DL_VertexData &data)=0
virtual void addInsert(const DL_InsertData &data)=0
virtual void addDimRadial(const DL_DimensionData &data, const DL_DimRadialData &edata)=0
virtual void addDimAlign(const DL_DimensionData &data, const DL_DimAlignedData &edata)=0
void setAttributes(const DL_Attributes &attrib)
virtual void addDictionary(const DL_DictionaryData &data)=0
virtual void addComment(const std::string &comment)=0
virtual void addXDataString(int code, const std::string &value)=0
virtual void addXRecord(const std::string &handle)=0
virtual void addPoint(const DL_PointData &data)=0
virtual void setVariableVector(const std::string &key, double v1, double v2, double v3, int code)=0
virtual void addDimAngular(const DL_DimensionData &data, const DL_DimAngularData &edata)=0
virtual void linkImage(const DL_ImageDefData &data)=0
virtual void addArcAlignedText(const DL_ArcAlignedTextData &data)=0
virtual void addLinetype(const DL_LinetypeData &data)=0
virtual void addArc(const DL_ArcData &data)=0
virtual void addFitPoint(const DL_FitPointData &data)=0
virtual void addXRecordReal(int code, double value)=0
virtual void addText(const DL_TextData &data)=0
virtual void addDimOrdinate(const DL_DimensionData &data, const DL_DimOrdinateData &edata)=0
virtual void addRay(const DL_RayData &data)=0
virtual void addLeaderVertex(const DL_LeaderVertexData &data)=0
DL_Attributes getAttributes()
virtual void addMTextChunk(const std::string &text)=0
virtual void addLine(const DL_LineData &data)=0
virtual void endSection()=0
virtual void addXRecordString(int code, const std::string &value)=0
virtual void addAttribute(const DL_AttributeData &data)=0
virtual void addTextStyle(const DL_StyleData &data)=0
virtual void endSequence()=0
virtual void addDictionaryEntry(const DL_DictionaryEntryData &data)=0
virtual void addTrace(const DL_TraceData &data)=0
DL_Extrusion * getExtrusion()
virtual void addHatchLoop(const DL_HatchLoopData &data)=0
virtual void addDimLinear(const DL_DimensionData &data, const DL_DimLinearData &edata)=0
virtual void addImage(const DL_ImageData &data)=0
virtual void addDimDiametric(const DL_DimensionData &data, const DL_DimDiametricData &edata)=0
virtual void addLayer(const DL_LayerData &data)=0
virtual void processCodeValuePair(unsigned int groupCode, const std::string &groupValue)=0
void setExtrusion(double dx, double dy, double dz, double elevation)
virtual void endBlock()=0
virtual void addXDataApp(const std::string &appId)=0
virtual void addMText(const DL_MTextData &data)=0
virtual void addXRecordInt(int code, int value)=0
virtual void setVariableString(const std::string &key, const std::string &value, int code)=0
virtual void addXDataInt(int code, int value)=0
virtual void addHatch(const DL_HatchData &data)=0
virtual void addLinetypeDash(double length)=0
virtual void setVariableDouble(const std::string &key, double value, int code)=0
virtual void addXRecordBool(int code, bool value)=0
virtual void addXDataReal(int code, double value)=0
virtual void addLeader(const DL_LeaderData &data)=0
virtual void addCircle(const DL_CircleData &data)=0
virtual void addSpline(const DL_SplineData &data)=0
virtual void endEntity()=0
virtual void addControlPoint(const DL_ControlPointData &data)=0
virtual void addXLine(const DL_XLineData &data)=0
virtual void setVariableInt(const std::string &key, int value, int code)=0
virtual void addKnot(const DL_KnotData &data)=0
virtual void addPolyline(const DL_PolylineData &data)=0
#define DXFLIB_EXPORT
Definition: dl_global.h:12
GraphType data
Definition: graph_cut.cc:138