00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef IMPORT_CREATIONCLASS_H
00021 #define IMPORT_CREATIONCLASS_H
00022 #include <vector>
00023 #include <point.h>
00024 #include <occupancy_grid.h>
00025 #include <host/importtype.h>
00026 #include <host/dxflib/dl_dxf.h>
00027 #include <host/dxflib/dl_creationinterface.h>
00028 using namespace std;
00029
00033 struct LineType
00034 {
00035 point p1;
00036 point p2;
00037 };
00038
00039 class importDXF : public DL_CreationInterface {
00040 public:
00041 importDXF(void);
00042 bool open(const char* const fname);
00043 void debug(void);
00044 void convert(const ImportType* const);
00045
00046
00047 void extent(const ImportType*);
00048 virtual void addLayer(const DL_LayerData& data) {}
00049 virtual void addBlock(const DL_BlockData& data) {}
00050 virtual void endBlock() {}
00051 virtual void addPoint(const DL_PointData& data) {}
00052 virtual void addLine(const DL_LineData& data);
00053 virtual void addArc(const DL_ArcData& data) {}
00054 virtual void addCircle(const DL_CircleData& data);
00055 virtual void addEllipse(const DL_EllipseData& data) {}
00056 virtual void addPolyline(const DL_PolylineData& data);
00057 virtual void addVertex(const DL_VertexData& data) {}
00058 virtual void addInsert(const DL_InsertData& data) {}
00059 virtual void addMText(const DL_MTextData& data) {}
00060 virtual void addMTextChunk(const char* text) {}
00061 virtual void addText(const DL_TextData& data) {}
00062 virtual void addDimAlign(const DL_DimensionData& data,
00063 const DL_DimAlignedData& edata) {}
00064 virtual void addDimLinear(const DL_DimensionData& data,
00065 const DL_DimLinearData& edata) {}
00066 virtual void addDimRadial(const DL_DimensionData& data,
00067 const DL_DimRadialData& edata) {}
00068 virtual void addDimDiametric(const DL_DimensionData& data,
00069 const DL_DimDiametricData& edata) {}
00070 virtual void addDimAngular(const DL_DimensionData& data,
00071 const DL_DimAngularData& edata) {}
00072 virtual void addDimAngular3P(const DL_DimensionData& data,
00073 const DL_DimAngular3PData& edata) {}
00074 virtual void addLeader(const DL_LeaderData& data) {}
00075 virtual void addLeaderVertex(const DL_LeaderVertexData& data) {}
00076 virtual void addHatch(const DL_HatchData& data) {}
00077 virtual void addHatchLoop(const DL_HatchLoopData& data) {}
00078 virtual void addHatchEdge(const DL_HatchEdgeData& data) {}
00079 virtual void addImage(const DL_ImageData&) {}
00080 virtual void linkImage(const DL_ImageDefData&) {}
00081 virtual void endSequence() {}
00082 virtual void endEntity() {}
00083
00084 virtual void setVariableVector(const char* key,
00085 double v1, double v2, double v3, int code) {}
00086 virtual void setVariableString(const char* key,
00087 const char* value, int code) {}
00088 virtual void setVariableInt(const char* key, int value, int code) {}
00089 virtual void setVariableDouble(const char* key, double value, int code) {}
00090
00091 void printAttributes();
00092 private:
00093
00094 float minX;
00095 float minY;
00096 float maxX;
00097 float maxY;
00098 vector<LineType> _lines;
00099 point _translate;
00100
00101 float _xscale;
00102 float _yscale;
00103
00104
00105 point UR;
00106 };
00107
00108 #endif