00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _GBRDRIVER
00011 #define _GBRDRIVER
00012 #ifdef __GNUG__
00013 #pragma interface
00014 #endif
00015
00016 #define MAX_POINTS_TODRAW 40000
00017 #define MININT -30000
00018 #define MAXINT 30000
00019
00022
00023 #include "_lnk_itr.h"
00024 #include "drivout.h"
00025 #include "lsetup.h"
00026 #include "wxmatrix.h"
00027 #include "bbox.h"
00028 #include "shape.h"
00029
00030 #include "polyline.h"
00031
00032
00033 enum GBR_TOOLS {GBR_NORMAL,GBR_HOLE,GBR_LINK};
00034
00036
00042 class GBRDriver: public Driver_out
00043 {
00044 public:
00046
00050 GBRDriver(const wxString& _filename, bool only_visible = false);
00052 ~GBRDriver();
00053
00054 void WriteNumber(double big);
00055
00056 void Write(Box* _Box);
00057 void Write(Circle* _Circle);
00058 void Write(ArrayReference*);
00059 void Write(Element*);
00060 void Write(Boundary*);
00061 void Write(GdsII*);
00062 void Write(Library*) {};
00063 void Write(Path*);
00064 void Write(Arcseg*);
00065 void Write(Point*);
00066 void Write(Segment*);
00067 void Write(G_Polygon*);
00068 void Write(G_Polyline*);
00069 void Write(StructureReference*);
00070 void Write(Structure*);
00071 void Write(Text*);
00072
00073 protected:
00074 int rad2deg(double value);
00075
00076 virtual void SetLayer(int layer) {};
00077 virtual void UnSetLayer(){};
00078 bool NeedToDraw(int);
00079
00081 Structure* _showstructure;
00082
00084 wxTransformMatrix* _matrix;
00085
00087 bool _visible;
00090 G_Polygon* _AbsPolygon;
00091
00092 TDLI<Segment>* _AI;
00093
00094 int _ActiveLayer;
00095
00096 wxString GBR_out_filename;
00098 ofstream GBR_out_file;
00100 int points_written;
00102
00104 Point _mid;
00105 double _Radius,_beginrad,_endrad,_midrad,_phit;
00107 Point _next;
00109 bool _first;
00111 bool _second;
00113 bool _right;
00115 bool _pulsed;
00116
00117 GBR_TOOLS m_active;
00118
00119 };
00120
00121 #endif
gbrhier.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . --