RSVertex.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: RSVertex.h,v 1.33 2005/12/23 17:02:01 amoll Exp $
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     /*_ @name Attributes
00178     */
00180 
00181     /*_ The index of the atom represented by the RSVertex
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 } // namespace BALL
00202 
00203 #endif // BALL_STRUCTURE_RSVERTEX_H