Main Page Class Hierarchy Compound List File List Compound Members

# referenc.h

    00001
    00002
    00003 /*
    00004 Program REFERENC.H
    00005 Purpose defines GDSII refence structure type (header)
    00006 Programmers     R. Spekreijse & N. Noorlander
    00007 Last Update     9-4-1998, M. Reemst
    00008 */
    00009
    00010 #ifndef REFERENC_H
    00011 #define REFERENC_H
    00012
    00013 #ifdef __GNUG__
    00014 #pragma interface
    00015 #endif
    00016
    00017 class DrawDriver;
    00018 class Driver_out;
    00019
    00020 #include "misc.h"
    00021 #include "point.h"
    00022 #include "bbox.h"
    00023 #include "element.h"
    00024
    00025 //forward declaration
    00026 class Structure;
    00027
    00029
    00037 class Reference : public Element
    00038 {
    00039         public:
    00040                 Reference();
    00041                 Reference(Structure*);
    00042                 ~Reference();
    00043
    00044                 virtual BoundingBox&                    CalcBoundingBox()=0;
    00045                 virtual BoundingBox&            GetBoundingBox();
    00046
    00047                 virtual void      Flatten(Structure* _Top,wxTransformMatrix* _Matrix,bool srefSelected,EleFlags refgroup,bool deep )=0;
    00048
    00049                 Structure*                                              GetStructure();
    00050                 void                                                            SetStructure(Structure*);
    00051                 void                                                            SetStructureReferenceName(const wxString&);
    00052                 const wxString&                       GetStructureReferenceName();
    00053                 void                                                            GetPoint(Point& offsetpoint);
    00054       void                       SetPoint(Point& offsetpoint);
    00055
    00056                 wxTransformMatrix*                      GetRelativeMatrix();
    00057                 void                                                            SetRelativeMatrix(wxTransformMatrix*);
    00058                 void                                                            CalculateRelativeMatrices();
    00059
    00060                 void                                                            SetReferencesNr();
    00061                 void                                                            SetExplodeReferencesNr();
    00062                 wxPropertySheet*           GetPropList();
    00063       void                                          UpdatePropList();
    00064                 virtual void               CalcArea(double* area,EleFlags mask)=0;
    00065
    00066         protected:
    00067                 Structure*                                              _structure;
    00068                 wxString                                _structurereferencename;
    00069                 wxTransformMatrix*                      _relative_matrix;
    00070 };
    00071
    00073
    00077 class ArrayReference : public Reference
    00078 {
    00079         public:
    00080                 ArrayReference();
    00081                 ~ArrayReference();
    00082
    00083       void OWrite(Driver_out& where);
    00084       void DoWrite(DrawDriver& dr);
    00085
    00086                 TYPE                                            GetType() {return AREF;};
    00087       void SetHorzSpace(Point *hor_space);
    00088       void SetVertSpace(Point *vert_space);
    00089                 Point* GetHorzPoint();
    00090                 Point* GetVertPoint();
    00091
    00092                 // public member functions
    00093                 int     GetRows();
    00094                 void    SetRows(int i);
    00095                 int     GetColumns();
    00096                 void    SetColumns(int i);
    00097                 BoundingBox&                    CalcBoundingBox();
    00098                 ArrayReference&                 operator=(ArrayReference&);
    00099                 Element*                                Duplicate();
    00100                 void                                            Transform(wxTransformMatrix* _Matrix);
    00101                 void                    CalcArea(double* area,EleFlags mask);
    00102                 void                                            Flatten(Structure* _Top,wxTransformMatrix* _Matrix,bool srefSelected,EleFlags refgroup,bool deep );
    00103
    00104
    00105         protected:
    00106                 bool                                    Select(Point*);
    00107                 bool                               Select(BoundingBox*,wxTransformMatrix*);
    00108                 int                                     m_columns;
    00109                 int                                     m_rows;
    00110                 Point*                                  _horpoint;
    00111                 Point*                                  _verpoint;
    00112 };
    00113
    00115
    00119 class StructureReference : public Reference
    00120 {
    00121         public:
    00122                 // constructors and destructors
    00123                 StructureReference();
    00124                 ~StructureReference();
    00125
    00126       void OWrite(Driver_out& where);
    00127       void DoWrite(DrawDriver& dr);
    00128
    00129                 TYPE                                            GetType() {return SREF;};
    00130
    00131                 // public memberfunctions
    00132                 BoundingBox&          CalcBoundingBox();
    00133
    00134                 // operators
    00135                 StructureReference&     operator=(StructureReference&);
    00136                 Element*                                Duplicate();
    00137                 void                                            Transform(wxTransformMatrix* _Matrix);
    00138                 void      Flatten(Structure* _Top,wxTransformMatrix* _Matrix,bool srefSelected,EleFlags refgroup,bool deep );
    00139                 void    CalcArea(double* area,EleFlags mask);
    00140
    00141
    00142         protected:
    00143                 bool                                    Select(Point*);
    00144                 bool                               Select(BoundingBox*,wxTransformMatrix*);
    00145
    00146 };
    00147
    00148 #endif

referenc.h Source File -- Thu Nov 28 21:24:56 2002 -- 28 Nov 2002 -- 1.2.18 -- -- . -- Main Page