SASVertex.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: SASVertex.h,v 1.8 2005/12/23 17:02:02 amoll Exp $
00005 //
00006 
00007 #ifndef BALL_STRUCTURE_SASVERTEX_H
00008 #define BALL_STRUCTURE_SASVERTEX_H
00009 
00010 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
00011 # include <BALL/STRUCTURE/graphVertex.h>
00012 #endif
00013 
00014 #ifndef BALL_MATHS_VECTOR3_H
00015 # include <BALL/MATHS/vector3.h>
00016 #endif
00017 
00018 namespace BALL
00019 {
00020 
00021   class SASEdge;
00022   class SASFace;
00023   class SolventAccessibleSurface;
00024   class TriangulatedSAS;
00025   class SASTriangulator;
00026 
00030   class BALL_EXPORT SASVertex : public GraphVertex< SASVertex,SASEdge,SASFace >
00031   {
00032     public:
00033 
00043     friend class SASEdge;
00044     friend class SASFace;
00045     friend class SolventAccessibleSurface;
00046     friend class TriangulatedSAS;
00047     friend class SASTriangulator;
00048 
00049     BALL_CREATE(SASVertex)
00050 
00051     
00054 
00058     SASVertex()
00059       ;
00060 
00068     SASVertex(const SASVertex& sasvertex, bool deep = false)
00069       ;
00070 
00076     SASVertex(const TVector3<double>& point,
00077         Index index)
00078       ;
00079 
00083     virtual ~SASVertex()
00084       ;
00085 
00087 
00090 
00098     void set(const SASVertex& sasvertex, bool deep = false)
00099       ;
00100 
00106     SASVertex& operator = (const SASVertex& sasvertex)
00107       ;
00108 
00113     void set(const TVector3<double> point,
00114         Index index)
00115       ;
00116 
00120     void setPoint(const TVector3<double>& point)
00121       ;
00122 
00126     TVector3<double> getPoint() const
00127       ;
00128 
00130 
00133 
00137     virtual bool operator == (const SASVertex&) const
00138       ;
00139 
00143     virtual bool operator != (const SASVertex&) const
00144       ;
00145 
00150     virtual bool operator *= (const SASVertex&) const
00151       ;
00152 
00154 
00155     protected:
00156 
00157     /*_ @name Attributes
00158     */
00160 
00161     /*_ The coordinates of the vertex.
00162     */
00163     TVector3<double> point_;
00164 
00166   };
00167 
00171 
00174   BALL_EXPORT std::ostream& operator << (std::ostream& s, const SASVertex& sasvertex);
00175 
00177 
00178 
00179 
00180 } // namespace BALL
00181 
00182 #endif // BALL_STRUCTURE_SASVERTEX_H