00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #ifndef EMASKPRS_H
00015 #define EMASKPRS_H
00016
00017 #ifdef __GNUG__
00018 #pragma interface
00019 #endif
00020
00021 #define EMASK_BUFF_SIZE 2047 // must at the very least be 600.
00022
00023
00024 #include <ctype.h>
00025 #include <fstream.h>
00026 #include <iostream.h>
00027 #include <math.h>
00028 #include <stdio.h>
00029 #include <string.h>
00030 #include <stdlib.h>
00031 #include <time.h>
00032
00035
00036 #include "misc.h"
00037
00038 #include "lsetup.h"
00039 #include "gdserr.h"
00040
00041
00042 class Arcseg;
00043 class ArrayReference;
00044 class Boundary;
00045 class Box;
00046 class Circle;
00047 class Element;
00048 class ElementList;
00049 class ColumnsRows;
00050 class GdsII;
00051 class Library;
00052 class Path;
00053 class Point;
00054 class Polygon;
00055 class Segment;
00056 class Shape;
00057 class G_Polygon;
00058 class G_Polyline;
00059 class Reference;
00060 class StructureReference;
00061 class Structure;
00062 class Text;
00063
00064
00066
00104 class EMASK_driver_in
00105 {
00106 public:
00108
00113 EMASK_driver_in(const wxString& filename, bool add, int layernr = 0);
00114
00116 ~EMASK_driver_in();
00117
00118 void Read(GdsII*);
00119 void SetDavidMannAdd(bool);
00120 protected:
00121
00123 bool Read_Command_From_EMASK_File ();
00125 void Strip_Blanks();
00126 void Strip_Item(int);
00127
00129 void Read_Items(int &teller);
00130 bool is_Keyword(char);
00131 char* ReadValue(int &teller);
00132
00134 int Read_XY();
00136 int Read_WH();
00138 int Read_A();
00139
00140 void Read_GDSII(GdsII*);
00141 void Read_Bgnlib(GdsII*);
00142 void Read_Library(GdsII*);
00143 void Read_Structure(GdsII*);
00144 void Read_Bgnstr(Structure*);
00145 void Read_StructureName(Structure*);
00146 void Read_Element(Structure* _structure);
00147 void Read_Box(Structure* _structure);
00148 void ReadElflags(Element* _element);
00149 void ReadLayer(Shape* _shape);
00150 void ReadBoxType(Box* _box);
00151 void ReadWidth(Shape* _shape);
00152
00153 void Read_Flash(Structure*);
00154
00155
00156 double Deg2Rad(int);
00157 double Inch2Meter(int value);
00158
00159 int GetAddAtLayer();
00160 bool GetDavidMannAdd();
00161
00162 int Getlast_Xpos();
00163 int Getlast_Ypos();
00164 int Getlast_Height();
00165 int Getlast_Width();
00166 int Getlast_Angle();
00167
00168 void SetAddAtLayer(int);
00169
00170 void Setlast_Xpos(int);
00171 void Setlast_Ypos(int);
00172 void Setlast_Height(int);
00173 void Setlast_Width(int);
00174 void Setlast_Angle(int);
00175
00176
00177 private:
00178
00180 wxString EMASK_filename;
00181
00183 ifstream EMASK_file;
00184
00186 char command_buffer[EMASK_BUFF_SIZE];
00187
00189 int AddAtLayer;
00191 bool DavidMannAdd;
00192
00193
00195 int last_Xpos;
00197 int last_Ypos;
00199 int last_Height;
00201 int last_Width;
00203 int last_Angle;
00204 };
00205
00206 #endif
emaskin.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . --