00001
00002
00003
00004
00005 #ifndef BALL_STRUCTURE_SASVERTEX_H
00006 #define BALL_STRUCTURE_SASVERTEX_H
00007
00008 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
00009 # include <BALL/STRUCTURE/graphVertex.h>
00010 #endif
00011
00012 #ifndef BALL_MATHS_VECTOR3_H
00013 # include <BALL/MATHS/vector3.h>
00014 #endif
00015
00016 namespace BALL
00017 {
00018
00019 class SASEdge;
00020 class SASFace;
00021 class SolventAccessibleSurface;
00022 class TriangulatedSAS;
00023 class SASTriangulator;
00024
00028 class BALL_EXPORT SASVertex : public GraphVertex< SASVertex,SASEdge,SASFace >
00029 {
00030 public:
00031
00041 friend class SASEdge;
00042 friend class SASFace;
00043 friend class SolventAccessibleSurface;
00044 friend class TriangulatedSAS;
00045 friend class SASTriangulator;
00046
00047 BALL_CREATE(SASVertex)
00048
00049
00052
00056 SASVertex()
00057 ;
00058
00066 SASVertex(const SASVertex& sasvertex, bool deep = false)
00067 ;
00068
00074 SASVertex(const TVector3<double>& point,
00075 Index index)
00076 ;
00077
00081 virtual ~SASVertex()
00082 ;
00083
00085
00088
00096 void set(const SASVertex& sasvertex, bool deep = false)
00097 ;
00098
00104 SASVertex& operator = (const SASVertex& sasvertex)
00105 ;
00106
00111 void set(const TVector3<double> point,
00112 Index index)
00113 ;
00114
00118 void setPoint(const TVector3<double>& point)
00119 ;
00120
00124 TVector3<double> getPoint() const
00125 ;
00126
00128
00131
00135 virtual bool operator == (const SASVertex&) const
00136 ;
00137
00141 virtual bool operator != (const SASVertex&) const
00142 ;
00143
00148 virtual bool operator *= (const SASVertex&) const
00149 ;
00150
00152
00153 protected:
00154
00155
00156
00158
00159
00160
00161 TVector3<double> point_;
00162
00164 };
00165
00169
00172 BALL_EXPORT std::ostream& operator << (std::ostream& s, const SASVertex& sasvertex);
00173
00175
00176
00177
00178 }
00179
00180 #endif // BALL_STRUCTURE_SASVERTEX_H