Main Page   Hardware Class Hierarchy   Hardware API     Mapping Class Hierarchy  Mapping API 

importdxf.h

Go to the documentation of this file.
00001 /*
00002 Object Oriented Mobile Robot Model (OOMRM) C++  Library Copyright (C) 2002-2006  Derek Jones
00003 
00004 This library is free software; you can redistribute it  and/or
00005 modify it under the terms of the GNU Lesser General Public
00006 License  as published by the Free Software Foundation; either
00007 version 2.1 of the  License, or (at your option) any later version.
00008 
00009 This library is  distributed in the hope that it will be useful,
00010 but WITHOUT ANY WARRANTY;  without even the implied warranty of
00011 MERCHANTABILITY or FITNESS FOR A  PARTICULAR PURPOSE.  See the GNU
00012 Lesser General Public License for more  details.
00013 
00014 You should have received a copy of the GNU Lesser General  Public
00015 License along with this library; if not, write to the Free  Software
00016 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307  USA
00017 
00018 $Id: importdxf.h,v 1.1.1.1 2006/05/11 05:22:43 derek Exp $ 
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 // A class to import a DXF file into a Scene file (scn).
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     // get scaling factor for new extent (Upper Right, Lower Left points)  newx, newy
00046 //    void extent(int newx = GRIDX, int newy = GRIDY); // extracts UR and LL most points to form new dimension.
00047     void extent(const ImportType*); // extracts UR and LL most points to form new dimension.
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 //  DL_Dxf _dxf;
00094   float minX;
00095   float minY; 
00096   float maxX; 
00097   float maxY;
00098   vector<LineType> _lines;
00099   point _translate;
00100 //  float _translate;
00101   float _xscale;
00102   float _yscale;
00103 //  float _extentX; // these two are new extent--what you want the picture to fit inside of.
00104 //  float _extentY; 
00105   point UR; // upper right point.
00106 };
00107 
00108 #endif

Generated on Mon Oct 8 19:32:19 2007 for OOMRM Mapping API by doxygen1.3