00001 00002 00003 /* 00004 Program GDSDROUT.H 00005 Purpose GdsII output driver inherited from class Driver_out (Header) 00006 Last Update 24-09-1996 00007 */ 00008 00009 #ifndef _GDS_DRIVER_OUT 00010 #define _GDS_DRIVER_OUT 00011 #ifdef __GNUG__ 00012 #pragma interface 00013 #endif 00014 00017 00018 #include <string.h> 00019 00020 #include "drivout.h" 00021 #include "gdsio.h" 00022 #include "misc.h" 00023 #include "gdsdef.h" 00024 #include "gdserr.h" 00025 #include "lsetup.h" 00026 class Strans; 00027 00029 00036 class GDS_driver_out : public Driver_out 00037 { 00038 public: 00040 00044 GDS_driver_out(const wxString& filename, bool only_visible=false); 00046 ~GDS_driver_out(); 00047 00049 bool bad(); 00050 00052 void Write(Box* _Box); 00053 void Write(Circle* _Circle); 00054 void Write(ArrayReference*); 00055 void Write(Boundary*); 00056 void Write(GdsII*); 00057 void Write(Library*); 00058 void Write(Path*); 00059 void Write(Arcseg*); 00060 void Write(Point*); 00061 void Write(Segment*); 00062 void Write(G_Polygon*); 00063 void Write(G_Polyline*); 00064 void Write(StructureReference*); 00065 void Write(Structure*); 00066 void Write(Text*); 00067 void WriteFlags(Element* ); 00068 00069 protected: 00070 void Write(Strans*); 00072 void WriteHeader(TWO_G_BYTE_UNSIGNED_INTEGER, G_BYTE, G_BYTE); 00073 00075 void WriteString(const wxString&); 00076 00078 wxString GDS_filename; 00080 Gdsio GDS_file; 00081 00082 bool _bad; 00083 00085 TWO_G_BYTE_UNSIGNED_INTEGER _recordsize; 00087 G_BYTE _recordtype; 00089 G_BYTE _datatype; 00090 00092 int _mapping_out[1000]; 00093 00095 double _userunits_out; 00096 00098 double _physunits_out; 00099 00101 double _scale_out; 00102 }; 00103 00104 #endif _GDS_DRIVER_OUT