Main Page   Class Hierarchy   Compound List   File List   Compound Members  

cnchier.h

00001 
00002 
00003 /*
00004 Program                 HIERDRV.H
00005 Purpose                 Virtual base class for all screendrivers (header)
00006                                         derived drivers must overload Draw functions!
00007                                         Mapping and clipping is done here
00008 */
00009 
00010 #ifndef _HIERDRIVER
00011 #define _HIERDRIVER
00012 #ifdef __GNUG__
00013 #pragma interface
00014 #endif
00015 
00016 #define MAX_POINTS_TODRAW 40000
00017 #define MININT -30000
00018 #define MAXINT  30000
00019 
00020 #include "_lnk_itr.h"
00021 #include "drivout.h"
00022 #include "lsetup.h"
00023 #include "wxmatrix.h"
00024 #include "bbox.h"
00025 #include "shape.h"
00026 
00027 #include "polyline.h"
00028 
00029 
00031 
00037 class HierDriver: public Driver_out
00038 {
00039         public:
00041 
00045                 HierDriver(const wxString& _filename, bool only_visible = false);
00047                 ~HierDriver();
00048 
00049                 void  WriteNumber(double big);
00050 
00051                 void                            Write(Box* _Box);
00052                 void                            Write(Circle* _Circle);
00053                 void                            Write(ArrayReference*);
00054                 void                            Write(Element*);
00055                 void                            Write(Boundary*);
00056                 void                            Write(ElementList*);
00057                 void                            Write(GdsII*);
00058                 void                            Write(Library*) {};
00059                 void                            Write(Path*);
00060                 void                            Write(Arcseg*);
00061                 void                            Write(Point*);
00062                 void                            Write(Segment*);
00063                 void                            Write(G_Polygon*);
00064                 void                            Write(G_Polyline*);
00065                 void                            Write(StructureReference*);
00066                 void                            Write(Structure*);
00067                 void                            Write(Text*);
00068 
00069         protected:
00070            int                                                          rad2deg(double value);
00071                 void                                                            AsHole(G_Polyline* _Polyline);
00072 
00073 
00074                 virtual void                                    SetLayer(int layer) {};
00075                 virtual void                                    UnSetLayer(){};
00076 
00077                 bool                                                    NeedToDraw(int);
00078 
00080       Structure*                 _showstructure;
00082       Structure*                 _drawstructure;
00083 
00085                 wxTransformMatrix*      _matrix;
00086 
00088                 bool                                                    _visible;
00089 
00091                 G_Polygon*                 _AbsPolygon;
00092 
00093            TDLI<Segment>*                               _AI;
00094 
00095                 int                                                             _ActiveLayer;
00096 
00097                 wxString        CNC_out_filename;
00099                 ofstream        CNC_out_file;
00101                 int      points_written;
00103 
00105       Point     _mid;
00106       double   _Radius,_beginrad,_endrad,_midrad,_phit;
00108       Point    _next;
00110       bool   _first;
00112       bool   _right;
00113 
00115       bool   _radcor;
00116 
00118       bool   _pulsed;
00119 
00121       double m_px;
00123       double m_py;
00124 };
00125 
00126 #endif
cnchier.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page