BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SESVertex.h
Go to the documentation of this file.
1 // -*- Mode: C++; tab-width: 2; -*-
2 // vi: set ts=2:
3 //
4 
5 #ifndef BALL_STRUCTURE_SESVERTEX_H
6 #define BALL_STRUCTURE_SESVERTEX_H
7 
8 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
10 #endif
11 
12 #ifndef BALL_MATHS_VECTOR3_H
13 # include <BALL/MATHS/vector3.h>
14 #endif
15 
16 namespace BALL
17 {
18  class SESEdge;
19  class SESFace;
20  class SolventExcludedSurface;
21  class SESComputer;
22  class SESSingularityCleaner;
23  class TriangulatedSES;
24  class SESTriangulator;
25 
29  class BALL_EXPORT SESVertex : public GraphVertex< SESVertex,SESEdge,SESFace >
30  {
31  public:
32 
44  friend class SESEdge;
45  friend class SESFace;
46  friend class SolventExcludedSurface;
47  friend class SESComputer;
48  friend class SESSingularityCleaner;
49  friend class TriangulatedSES;
50  friend class SESTriangulator;
51 
53 
54 
57 
61  SESVertex()
62  ;
63 
71  SESVertex(const SESVertex& sesvertex, bool deep = false)
72  ;
73 
81  SESVertex
82  (const TVector3<double>& point,
83  const TVector3<double>& normal,
84  Index atom,
85  Index index)
86  ;
87 
91  virtual ~SESVertex()
92  ;
93 
95 
98 
106  void set(const SESVertex& sesvertex, bool deep = false)
107  ;
108 
114  SESVertex& operator = (const SESVertex& sesvertex)
115  ;
116 
123  void set(const TVector3<double> point,
124  const TVector3<double>& normal,
125  Index atom,
126  Index index)
127  ;
128 
132  void setPoint(const TVector3<double>& point)
133  ;
134 
138  TVector3<double> getPoint() const
139  ;
140 
144  void setNormal(const TVector3<double>& normal)
145  throw(Exception::DivisionByZero);
146 
150  TVector3<double> getNormal() const
151  ;
152 
156  void setAtom(Index atom)
157  ;
158 
162  Index getAtom() const
163  ;
164 
166 
170 
174  virtual bool operator == (const SESVertex&) const
175  ;
176 
180  virtual bool operator != (const SESVertex&) const
181  ;
182 
186  virtual bool operator *= (const SESVertex&) const
187  ;
188 
190 
191  protected:
192 
196 
197  /*_ The coordinates of the vertex.
198  */
199  TVector3<double> point_;
200  /*_ The normal vector of the vertex.
201  */
202  TVector3<double> normal_;
203  /*_ The index of the closest atom.
204  */
205  Index atom_;
206 
208  };
209 
213 
216  BALL_EXPORT std::ostream& operator << (std::ostream& s, const SESVertex& sesvertex);
217 
219 
220 
221 } // namespace BALL
222 
223 #endif // BALL_SES_SESVERTEX_H