Main Page   Class Hierarchy   Compound List   File List   Compound Members  

genhier.h

00001 /*
00002 Program                 SCRNDRV.H
00003 Purpose                 Virtual base class for all screendrivers (header)
00004                                         derived drivers must overload Draw functions!
00005                                         Mapping and clipping is done here
00006 */
00007 
00008 #pragma interface
00009 #ifndef _SCREENDRIVER
00010 #define _SCREENDRIVER
00011 
00012 #define MAX_POINTS_TODRAW 40000
00013 #define MININT -30000
00014 #define MAXINT  30000
00015 // #endif
00016 
00017 #include "_lnk_itr.h"
00018 #include "drivout.h"
00019 #include "setup.h"
00020 #include "matrix.h"
00021 #include "bbox.h"
00022 #include "shape.h"
00023 
00024 #include "polyline.h"
00025 
00026 
00027 // now declare the real class
00028 class HierDriver: public Driver_out
00029 {
00030         public:
00031                 virtual bool Pending()=0;
00032                 // constructors and destructor
00033                 HierDriver();
00034                 ~HierDriver();
00035 
00036                 // overloaded functions from class Driver_out
00037                 // Some are not used for screen output -> {}
00038                 // overloaded here because derived classes don't need them and
00039                 // there are useless here because we don't draw them
00040 
00041                 void                            Write(Box* _Box);
00042                 void                            Write(Circle* _Circle);
00043                 void                            Write(ArrayReference*);
00044                 void                            Write(Bgnlib*) {};
00045                 void                            Write(Bgnstr*) {};
00046                 void                            Write(Element*);
00047                 void                            Write(Boundary*);
00048                 void                            Write(ElementList*);
00049                 void                            Write(ColumnsRows*) {};
00050                 void                            Write(Elflags*) {};
00051                 void                            Write(GdsII*);
00052                 void                            Write(Header*) {};
00053                 void                            Write(Library*) {};
00054                 void                            Write(Path*);
00055                 void                            Write(Arcseg*);
00056                 void                            Write(Pathtype*) {};
00057                 void                            Write(Point*);
00058                 void                            Write(Segment*);
00059                 void                            Write(G_Polygon*);
00060                 void                            Write(G_Polyline*);
00061                 void                            Write(Presentation*) {};
00062                 void                            Write(Strans*) {};
00063                 void                            Write(StructureList*) {};
00064                 void                            Write(StructureReference*);
00065                 void                            Write(Structure*);
00066                 void                            Write(Text*);
00067                 void                            Write(Texttype*) {};
00068                 void                            Write(Units*) {};
00069 
00070                 void                                                            SetUnits(Units* units);
00071 
00072         protected:
00073 
00074                 virtual void                                    SetLayer(int layer) = 0;
00075                 virtual void                                    UnSetLayer()= 0;
00076                 virtual void                                    GDSDrawText(char* text, double x, double y, double x2, double y2, Presentation*, Matrix<double>*)=0;
00077 
00078                 void                                                            Transform(EIGHT_G_BYTE_REAL&,
00079                                                                                                                          EIGHT_G_BYTE_REAL&);
00080                 void                                                            Transform(EIGHT_G_BYTE_REAL&,
00081                                                                                                                          EIGHT_G_BYTE_REAL&,
00082                                                                                                                          EIGHT_G_BYTE_REAL&,
00083                                                                                                                          EIGHT_G_BYTE_REAL&);
00084 
00085                 bool                                                    NeedToDraw(int);
00086 
00087       Structure*                 _showstructure;   // top of visible structures
00088       Structure*                 _drawstructure;   // structure to be drawn
00089 
00090                 Matrix<EIGHT_G_BYTE_REAL>*      _matrix;                                // holds the matrix from structure reference
00091 
00092                 bool                                                    _visible;                       // is this structure visible?
00093                 Units*                                           _units;                 // holds the units from the library
00094 
00095                 G_Polygon*                 _AbsPolygon;      // for containing the absolute polygon
00096            TDLI<Segment>*                               _AI;
00097 
00098                 int                                                             _ActiveLayer;
00099 };
00100 
00101 #endif
genhier.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page