Main Page Class Hierarchy Compound List File List Compound Members

# segment.h

    00001
    00002
    00003 /*
    00004 Program POINT.H
    00005 Purpose Definition of GDSII double structure
    00006 Last Update     12-12-1995
    00007 */
    00008
    00009 #ifndef SEGMENT_H
    00010 #define SEGMENT_H
    00011
    00012 #ifdef __GNUG__
    00013 #pragma interface
    00014 #endif
    00015
    00016 #include "gdserr.h"
    00017 #include "misc.h"
    00018 #include "point.h"
    00019
    00020 enum SEGTYPE {LINE,ARC};
    00021 enum HOLEFLAGS {NORMAL_SEG,LINK_SEG,HOLE_SEG};
    00022
    00024
    00032 class Segment
    00033 {
    00034         public:
    00035                 Segment();
    00036                 virtual ~Segment();
    00037                 virtual double  GetX()=0;
    00038                 virtual double  GetY()=0;
    00039                 virtual void            SetX(double)=0;
    00040                 virtual void            SetY(double)=0;
    00041                 virtual SEGTYPE   GetType()=0;
    00042       inline HOLEFLAGS GetHoleType() {return m_holetype;};
    00043       inline bool      GetBin()      {return m_bin;};
    00044       inline void SetHoleType(HOLEFLAGS a) {m_holetype=a;};
    00045       inline void SetBin(bool bin) {m_bin=bin;};
    00046
    00047    protected:
    00048                 bool    m_bin           : 1;                            // Marker for walking over the graph
    00049                 HOLEFLAGS  m_holetype : 2;                              // Is this a part of hole ?
    00050 };
    00051
    00052
    00054
    00061 class Line_Seg : public Segment
    00062 {
    00063         public:
    00064
    00065                 Line_Seg();
    00066                 ~Line_Seg();
    00067                 Line_Seg(double const X, double const Y);
    00068                 Line_Seg(Point* const);
    00069       Line_Seg(Line_Seg* other);
    00070
    00071 //         void*                                operator new(size_t size);
    00072 //              void                            operator delete(void* segmentptr);
    00073
    00074                 void                    Set(const double,const double);
    00075
    00076                 double  GetX();
    00077                 double  GetY();
    00078                 void            SetX(double);
    00079                 void                    SetY(double);
    00080                                  SEGTYPE        GetType();
    00081                 Line_Seg&                       operator=(Line_Seg&);
    00082
    00083         protected:
    00084                 Point   _point;
    00085 };
    00086
    00088
    00095 class Arc_Seg : public Segment
    00096 {
    00097         public:
    00098
    00099                 Arc_Seg();
    00100                 ~Arc_Seg();
    00101                 Arc_Seg(double const X, double const Y,double const AX, double const AY, double const OX, double const OY);
    00102                 Arc_Seg(Point* const, Point* const, Point* const);
    00103       Arc_Seg(Arc_Seg* other);
    00104
    00105 //      void*                           operator new(size_t size);
    00106 //              void                                    operator delete(void* segmentptr);
    00107
    00108                 void                    Set(const double,const double,double const AX, double const AY, double const OX, double const OY);
    00109
    00110                 double  GetX();
    00111                 double  GetY();
    00112                 double  GetAX();
    00113                 double  GetAY();
    00114                 double  GetOX();
    00115                 double  GetOY();
    00116                 void               SetX(double);
    00117                 void                    SetY(double);
    00118                 void               SetAX(double);
    00119                 void                    SetAY(double);
    00120                 void               SetOX(double);
    00121                 void                    SetOY(double);
    00122       SEGTYPE      GetType();
    00123       Arc_Seg&    operator=(Arc_Seg &other);
    00124
    00125         protected:
    00126                 Point   _point;
    00127                 Point   _Apoint;
    00128                 Point   _Opoint;
    00129 };
    00130
    00131 #endif

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