BALL  1.4.1
RSVertex.h
Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
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     /*_ @name Attributes
00176     */
00178 
00179     /*_ The index of the atom represented by the RSVertex
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 } // namespace BALL
00200 
00201 #endif // BALL_STRUCTURE_RSVERTEX_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines