00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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
00040 EMASK_driver_out(const wxString& _filename, bool only_visible=false);
00041 ~EMASK_driver_out();
00042
00043
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;
00073 ofstream EMASK_out_file;
00074
00075 int Flashes_Written;
00076 int Points_Written;
00077
00078 int error;
00079
00080 double X[3]; double Y[3];
00081
00082 double a;
00083 double w;
00084 double h;
00085 double x;
00086 double y;
00087
00088
00089 int Xpos;
00090 int Ypos;
00091 int Width;
00092 int Height;
00093 int Angle;
00094
00095 int lastXpos;
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 -- -- . --