BALL
1.4.1
|
00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 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 /*_ @name Attributes 00156 */ 00158 00159 /*_ The coordinates of the vertex. 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 } // namespace BALL 00179 00180 #endif // BALL_STRUCTURE_SASVERTEX_H