00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_STRUCTURE_RSVERTEX_H
00008 #define BALL_STRUCTURE_RSVERTEX_H
00009
00010 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
00011 # include <BALL/STRUCTURE/graphVertex.h>
00012 #endif
00013
00014
00015 namespace BALL
00016 {
00017 class RSEdge;
00018 class RSFace;
00019 class ReducedSurface;
00020 class RSComputer;
00021 class SESEdge;
00022 class SESFace;
00023 class SESVertex;
00024 class SolventExcludedSurface;
00025 class SESComputer;
00026 class SESSingularityCleaner;
00027 class TriangulatedSES;
00028 class SESTriangulator;
00029 class SASEdge;
00030 class SASFace;
00031 class SASVertex;
00032 class SolventAccessibleSurface;
00033 class TriangulatedSAS;
00034 class SASTriangulator;
00035
00039 class BALL_EXPORT RSVertex : public GraphVertex< RSVertex,RSEdge,RSFace >
00040 {
00041 public:
00042
00065 friend class RSEdge;
00066 friend class RSFace;
00067 friend class ReducedSurface;
00068 friend class RSComputer;
00069 friend class SESEdge;
00070 friend class SESFace;
00071 friend class SESVertex;
00072 friend class SolventExcludedSurface;
00073 friend class SESComputer;
00074 friend class SESSingularityCleaner;
00075 friend class TriangulatedSES;
00076 friend class SESTriangulator;
00077 friend class SASEdge;
00078 friend class SASFace;
00079 friend class SASVertex;
00080 friend class SolventAccessibleSurface;
00081 friend class TriangulatedSAS;
00082 friend class SASTriangulator;
00083
00084 BALL_CREATE(RSVertex)
00085
00086
00089
00093 RSVertex();
00094
00102 RSVertex(const RSVertex& rsvertex, bool deep = false);
00103
00108 RSVertex(Index atom);
00109
00113 virtual ~RSVertex();
00115
00119
00127 void set(const RSVertex& rsvertex, bool deep = false);
00128
00134 RSVertex& operator = (const RSVertex& rsvertex);
00135
00137
00140
00144 void setAtom(Index atom);
00145
00149 Index getAtom() const;
00150
00152
00155
00160 virtual bool operator == (const RSVertex& rsvertex) const;
00161
00166 virtual bool operator != (const RSVertex& rsvertex) const;
00167
00171 virtual bool operator *= (const RSVertex& rsvertex) const;
00172
00174
00175 protected:
00176
00177
00178
00180
00181
00182
00183 Index atom_;
00184
00186
00187 };
00188
00192
00196 BALL_EXPORT std::ostream& operator << (std::ostream& s, const RSVertex& rsvertex);
00197
00199
00200
00201 }
00202
00203 #endif // BALL_STRUCTURE_RSVERTEX_H