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
00026
00027 #ifndef DL_CREATIONINTERFACE_H
00028 #define DL_CREATIONINTERFACE_H
00029
00030 #include <string.h>
00031
00032 #include "dl_attributes.h"
00033 #include "dl_codes.h"
00034 #include "dl_entities.h"
00035 #include "dl_extrusion.h"
00036
00047 class DL_CreationInterface {
00048 public:
00049 DL_CreationInterface() {
00050 extrusion = new DL_Extrusion;
00051 }
00052 virtual ~DL_CreationInterface() {
00053 delete extrusion;
00054 }
00055
00059 virtual void addLayer(const DL_LayerData& data) = 0;
00060
00067 virtual void addBlock(const DL_BlockData& data) = 0;
00068
00070 virtual void endBlock() = 0;
00071
00073 virtual void addPoint(const DL_PointData& data) = 0;
00074
00076 virtual void addLine(const DL_LineData& data) = 0;
00077
00079 virtual void addArc(const DL_ArcData& data) = 0;
00080
00082 virtual void addCircle(const DL_CircleData& data) = 0;
00083
00085 virtual void addEllipse(const DL_EllipseData& data) = 0;
00086
00088 virtual void addPolyline(const DL_PolylineData& data) = 0;
00089
00091 virtual void addVertex(const DL_VertexData& data) = 0;
00092
00094 virtual void addSpline(const DL_SplineData& data) = 0;
00095
00097 virtual void addControlPoint(const DL_ControlPointData& data) = 0;
00098
00100 virtual void addKnot(const DL_KnotData& data) = 0;
00101
00103 virtual void addInsert(const DL_InsertData& data) = 0;
00104
00106 virtual void addTrace(const DL_TraceData& data) = 0;
00107
00109 virtual void addSolid(const DL_SolidData& data) = 0;
00110
00111
00113 virtual void addMText(const DL_MTextData& data) = 0;
00114
00120 virtual void addMTextChunk(const char* text) = 0;
00121
00123 virtual void addText(const DL_TextData& data) = 0;
00124
00128 virtual void addDimAlign(const DL_DimensionData& data,
00129 const DL_DimAlignedData& edata) = 0;
00133 virtual void addDimLinear(const DL_DimensionData& data,
00134 const DL_DimLinearData& edata) = 0;
00135
00139 virtual void addDimRadial(const DL_DimensionData& data,
00140 const DL_DimRadialData& edata) = 0;
00141
00145 virtual void addDimDiametric(const DL_DimensionData& data,
00146 const DL_DimDiametricData& edata) = 0;
00147
00151 virtual void addDimAngular(const DL_DimensionData& data,
00152 const DL_DimAngularData& edata) = 0;
00153
00157 virtual void addDimAngular3P(const DL_DimensionData& data,
00158 const DL_DimAngular3PData& edata) = 0;
00159
00163 virtual void addLeader(const DL_LeaderData& data) = 0;
00164
00168 virtual void addLeaderVertex(const DL_LeaderVertexData& data) = 0;
00169
00173 virtual void addHatch(const DL_HatchData& data) = 0;
00174
00178 virtual void addImage(const DL_ImageData& data) = 0;
00179
00183 virtual void linkImage(const DL_ImageDefData& data) = 0;
00184
00188 virtual void addHatchLoop(const DL_HatchLoopData& data) = 0;
00189
00193 virtual void addHatchEdge(const DL_HatchEdgeData& data) = 0;
00194
00198 virtual void endEntity() = 0;
00199
00203 virtual void setVariableVector(const char* key,
00204 double v1, double v2, double v3, int code) = 0;
00205
00209 virtual void setVariableString(const char* key, const char* value, int code) = 0;
00210
00214 virtual void setVariableInt(const char* key, int value, int code) = 0;
00215
00219 virtual void setVariableDouble(const char* key, double value, int code) = 0;
00220
00224 virtual void endSequence() = 0;
00225
00227 void setAttributes(const DL_Attributes& attrib) {
00228 attributes = attrib;
00229 }
00230
00232 DL_Attributes getAttributes() {
00233 return attributes;
00234 }
00235
00237 void setExtrusion(double dx, double dy, double dz, double elevation) {
00238 extrusion->setDirection(dx, dy, dz);
00239 extrusion->setElevation(elevation);
00240 }
00241
00243 DL_Extrusion* getExtrusion() {
00244 return extrusion;
00245 }
00246
00247 protected:
00248 DL_Attributes attributes;
00249 DL_Extrusion *extrusion;
00250 };
00251
00252 #endif