Main Page   Class Hierarchy   Compound List   File List   Compound Members  

emaskin.h

00001 
00002 
00003 /*
00004  *      Program         FlashPrs.h
00005  *      Purpose         Functions to read David Mann flash files and to convert
00006  *                                      it into a GdsII data structure (Header)
00007  *      Author          J.C. Mollien
00008  *              "Sunday morning I'm waking up, can't even focus on my coffee cup
00009  *     I don't know whose bed I'm in, where do I start, where do I begin?"
00010  * Modified             29-08-1997
00011  *      Created     19-08-1997
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 // inludes used for all io and standard functions (libs)
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       // conversion functions
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 -- -- . -- Main Page