00001
00002
00003
00004
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
00158
00160
00161
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 }
00181
00182 #endif // BALL_STRUCTURE_SASVERTEX_H