00001
00002
00003
00004
00005 #ifndef BALL_STRUCTURE_RSVERTEX_H
00006 #define BALL_STRUCTURE_RSVERTEX_H
00007
00008 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
00009 # include <BALL/STRUCTURE/graphVertex.h>
00010 #endif
00011
00012
00013 namespace BALL
00014 {
00015 class RSEdge;
00016 class RSFace;
00017 class ReducedSurface;
00018 class RSComputer;
00019 class SESEdge;
00020 class SESFace;
00021 class SESVertex;
00022 class SolventExcludedSurface;
00023 class SESComputer;
00024 class SESSingularityCleaner;
00025 class TriangulatedSES;
00026 class SESTriangulator;
00027 class SASEdge;
00028 class SASFace;
00029 class SASVertex;
00030 class SolventAccessibleSurface;
00031 class TriangulatedSAS;
00032 class SASTriangulator;
00033
00037 class BALL_EXPORT RSVertex : public GraphVertex< RSVertex,RSEdge,RSFace >
00038 {
00039 public:
00040
00063 friend class RSEdge;
00064 friend class RSFace;
00065 friend class ReducedSurface;
00066 friend class RSComputer;
00067 friend class SESEdge;
00068 friend class SESFace;
00069 friend class SESVertex;
00070 friend class SolventExcludedSurface;
00071 friend class SESComputer;
00072 friend class SESSingularityCleaner;
00073 friend class TriangulatedSES;
00074 friend class SESTriangulator;
00075 friend class SASEdge;
00076 friend class SASFace;
00077 friend class SASVertex;
00078 friend class SolventAccessibleSurface;
00079 friend class TriangulatedSAS;
00080 friend class SASTriangulator;
00081
00082 BALL_CREATE(RSVertex)
00083
00084
00087
00091 RSVertex();
00092
00100 RSVertex(const RSVertex& rsvertex, bool deep = false);
00101
00106 RSVertex(Index atom);
00107
00111 virtual ~RSVertex();
00113
00117
00125 void set(const RSVertex& rsvertex, bool deep = false);
00126
00132 RSVertex& operator = (const RSVertex& rsvertex);
00133
00135
00138
00142 void setAtom(Index atom);
00143
00147 Index getAtom() const;
00148
00150
00153
00158 virtual bool operator == (const RSVertex& rsvertex) const;
00159
00164 virtual bool operator != (const RSVertex& rsvertex) const;
00165
00169 virtual bool operator *= (const RSVertex& rsvertex) const;
00170
00172
00173 protected:
00174
00175
00176
00178
00179
00180
00181 Index atom_;
00182
00184
00185 };
00186
00190
00194 BALL_EXPORT std::ostream& operator << (std::ostream& s, const RSVertex& rsvertex);
00195
00197
00198
00199 }
00200
00201 #endif // BALL_STRUCTURE_RSVERTEX_H