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