Main Page   Class Hierarchy   Compound List   File List   Compound Members  

emaskout.h

00001 
00002 
00003 /*
00004  *      Program         FLASHOUT.H
00005  *      Purpose         Creates a Mann file from a GDS-II structure
00006  *      Author          J.C.Mollien
00007  *              "Sunday morning I'm waking up, can't even focus on my coffee cup
00008  *     I don't know whose bed I'm in, where do I start, where do I begin?"
00009  *      Modified                03-09-1997
00010  * Created              19-08-1997
00011  */
00012 
00013 #ifndef _EMASK_OUTDRIVER
00014 #define _EMASK_OUTDRIVER
00015 
00016 #ifdef __GNUG__
00017 #pragma interface
00018 #endif
00019 
00020 #include <string.h>
00021 #include <fstream.h>
00022 #include <math.h>
00023 
00024 
00025 #include "drivout.h"
00026 #include "misc.h"
00027 #include "gdserr.h"
00028 #include "lsetup.h"
00029 
00031 
00036 class EMASK_driver_out: public Driver_out
00037 {
00038         public:
00039                 // constructor and destructor
00040                 EMASK_driver_out(const wxString& _filename, bool only_visible=false);
00041                 ~EMASK_driver_out();
00042 
00043                 // overloaded function from class Driver
00044                 void    Write(ArrayReference*);
00045                 void    Write(Element*);
00046                 void    Write(Boundary*);
00047                 void  Write(Box* _Box);
00048                 void  Write(Circle* _Circle);
00049                 void    Write(GdsII*);
00050                 void    Write(Library*);
00051                 void    Write(Path*);
00052                 void    Write(Arcseg*);
00053                 void    Write(Point*);
00054                 void  Write(Segment *_Segment);
00055                 void    Write(G_Polygon*);
00056                 void    Write(G_Polyline*);
00057                 void    Write(StructureReference*);
00058                 void    Write(Structure*);
00059                 void    Write(Text*);
00060 
00061         protected:
00062                 void    WriteHeader();
00063                 void            WriteOuttro();
00064 
00065                 void            ReadFlash();
00066                 void            WriteFlash();
00067 
00068                 int rad2deg(double value);
00069 
00070         private:
00071 
00072                 wxString        EMASK_out_filename;     // the filename
00073                 ofstream        EMASK_out_file;         // the output stream
00074 
00075                 int      Flashes_Written;
00076                 int             Points_Written;
00077 
00078                 int      error;               // fout element in file (!box)
00079 
00080                 double  X[3];   double  Y[3];   // to store points(x,y)
00081 
00082                 double  a;
00083                 double  w;
00084                 double  h;
00085                 double  x;
00086                 double  y;
00087 
00088 
00089                 int     Xpos;                   // to store the calculated Flash
00090                 int     Ypos;                   // prior to stuffing it in the
00091                 int     Width;          // file.
00092                 int     Height;
00093                 int             Angle;
00094 
00095                 int     lastXpos;   // to store the last Flash
00096                 int     lastYpos;
00097                 int     lastWidth;
00098                 int     lastHeight;
00099                 int             lastAngle;
00100 };
00101 
00102 #endif _EMASK_OUTDRIVER
emaskout.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page