00001
00002
00003
00004
00005
00006
00007
00008
00009
00010 #ifndef _GDS_DRIVER_IN
00011 #define _GDS_DRIVER_IN
00012
00013 #ifdef __GNUG__
00014 #pragma interface
00015 #endif
00016
00019
00020 #include <string.h>
00021
00022 #include "gdsio.h"
00023 #include "misc.h"
00024 #include "gdsdef.h"
00025 #include "gdserr.h"
00026
00027 #include "lsetup.h"
00028
00029 class ArrayReference;
00030 class Boundary;
00031 class Element;
00032 class ElementList;
00033 class ColumnsRows;
00034 class Elflags;
00035 class GdsII;
00036 class Library;
00037 class Path;
00038 class Box;
00039 class Point;
00040 class Segment;
00041 class Shape;
00042 class G_Polygon;
00043 class G_Polyline;
00044 class Reference;
00045 class StructureReference;
00046 class Structure;
00047 class Text;
00048
00049 class Strans;
00050
00052
00059 class GDS_driver_in
00060 {
00061 public:
00063
00067 GDS_driver_in(const wxString& filename);
00068 ~GDS_driver_in();
00069
00071
00074 void Read(GdsII* _GdsII);
00075
00076 protected:
00077 bool ReadBgnlib(GdsII* _GdsII);
00078 bool ReadBgnstr(Structure* _struct);
00079 bool ReadProperty(Structure* _structure);
00080 bool ReadBoundary(Structure* _structure);
00081 bool ReadPath(Structure* _structure);
00082 bool ReadText(Structure* _structure);
00083 bool ReadStructureReference(Structure* _structure);
00084 bool ReadArrayReference(Structure* _structure);
00085 bool ReadNode(Structure* _structure);
00086 bool ReadBox(Structure* _structure);
00087 bool ReadElflags(Element* _Element);
00088 bool ReadGdsHeader(GdsII* _GdsII);
00089 bool ReadLayer(Shape* _Shape);
00090 bool ReadLibraryName(Library* _Library);
00091 bool ReadLibrarySettings(GdsII* _GdsII);
00092 bool Read(Point* _Point);
00093 bool ReadPresentation(Text* _Text);
00094 bool ReadStrans(Strans* _Strans);
00095 bool ReadStructure(GdsII* _structurelist);
00096 bool ReadTexttype(Text* _Text);
00097 bool ReadElement(Structure* _structure);
00098 bool ReadUnits(Library* _Library);
00099 bool ReadWidth(Shape* _Shape);
00100 bool ReadRefLibs(Library* _Library);
00101 bool ReadFonts(Library* _Library);
00102 bool ReadAttrtable(Library* _Library);
00103 bool ReadGenerations(Library* _Library);
00104 bool ReadDatatype(Boundary* _Boundary);
00105 bool ReadDatatype(Path* _Path);
00106 bool ReadBoxtype(Box* _Box);
00107 bool ReadTextBody(Text* _text);
00108
00109 void Read(Segment* _Seg);
00110 bool Read(G_Polygon* _Polygon);
00111 bool Read(G_Polyline* _Polyline);
00112
00115 bool ReadHeader(int type);
00116
00118 void SkipData();
00119
00121 void ReadString(wxString& a_string);
00122
00124 wxString GDS_filename;
00125
00127 Gdsio GDS_file;
00128
00130 bool _back;
00132 TWO_G_BYTE_UNSIGNED_INTEGER _recordsize;
00134 G_BYTE _recordtype;
00136 G_BYTE _datatype;
00138 int _mapping_in[1000];
00140 GdsII* m_cur_gdsii;
00141 };
00142
00143 #endif _GDS_DRIVER_IN
gdsdrin.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . --