Main Page | Class Hierarchy | Class List | Directories | File List | Class Members | Related Pages

dl_creationinterface.h

00001 /****************************************************************************
00002 ** $Id: dl_creationinterface.h 2397 2005-06-06 18:11:14Z andrew $
00003 **
00004 ** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.
00005 **
00006 ** This file is part of the dxflib project.
00007 **
00008 ** This file may be distributed and/or modified under the terms of the
00009 ** GNU General Public License version 2 as published by the Free Software
00010 ** Foundation and appearing in the file LICENSE.GPL included in the
00011 ** packaging of this file.
00012 **
00013 ** Licensees holding valid dxflib Professional Edition licenses may use 
00014 ** this file in accordance with the dxflib Commercial License
00015 ** Agreement provided with the Software.
00016 **
00017 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00018 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00019 **
00020 ** See http://www.ribbonsoft.com for further details.
00021 **
00022 ** Contact [email protected] if any conditions of this licensing are
00023 ** not clear to you.
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

Generated on Sat Jan 6 13:48:19 2007 for dxflib by  doxygen 1.4.4