BALL  1.5.0
SASFace.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_SASFACE_H
6 #define BALL_STRUCTURE_SASFACE_H
7 
8 #ifndef BALL_STRUCTURE_GRAPHFACE_H
10 #endif
11 
12 #ifndef BALL_STRUCTURE_SPHERE3_H
13 # include <BALL/MATHS/sphere3.h>
14 #endif
15 
16 #include <list>
17 
18 namespace BALL
19 {
20 
21  class SolventAccessibleSurface;
22  class SASEdge;
23  class SASVertex;
24  class TriangulatedSAS;
25  class SASTriangulator;
26 
30  class BALL_EXPORT SASFace : public GraphFace< SASVertex,SASEdge,SASFace >
31  {
32  public:
33 
43  friend class SASEdge;
44  friend class SASVertex;
46  friend class TriangulatedSAS;
47  friend class SASTriangulator;
48 
50 
51 
54 
55  typedef std::list<bool>::iterator OrientationIterator;
56  typedef std::list<bool>::const_iterator ConstOrientationIterator;
57 
59 
62 
67  ;
68 
76  SASFace(const SASFace& sasface, bool deep = false)
77  ;
78 
82  virtual ~SASFace()
83  ;
84 
86 
89 
96  void set(const SASFace& sasface, bool deep = false)
97  ;
98 
104  SASFace& operator = (const SASFace& sasface)
105  ;
106 
108 
111 
115  void setSphere(const TSphere3<double>& sphere)
116  ;
117 
121  TSphere3<double> getSphere() const
122  ;
123 
125 
128 
132  virtual bool operator == (const SASFace&) const
133  ;
134 
138  virtual bool operator != (const SASFace&) const
139  ;
140 
144  virtual bool operator *= (const SASFace&) const
145  ;
146 
148 
151 
152  OrientationIterator beginOrientation()
153  ;
154  ConstOrientationIterator beginOrientation() const
155  ;
156  OrientationIterator endOrientation()
157  ;
158  ConstOrientationIterator endOrientation() const
159  ;
160 
162 
163  protected:
164 
168 
169  /*_ A list of booleans to indicate the orientation of each sasedge.
170  */
171  std::list<bool> orientation_;
172  /*_ The sphere on which the face lies.
173  */
174  TSphere3<double> sphere_;
175 
177  };
178 
182 
185  BALL_EXPORT std::ostream& operator << (std::ostream& s, const SASFace& sasface);
186 
188 
189 } // namespace BALL
190 
191 #endif // BALL_STRUCTURE_SASFACE_H
BALL_EXPORT
#define BALL_EXPORT
Definition: COMMON/global.h:50
BALL::SASFace::OrientationIterator
std::list< bool >::iterator OrientationIterator
Definition: SASFace.h:55
BALL::SASVertex
Definition: SASVertex.h:29
graphFace.h
BALL::SASFace
Definition: SASFace.h:31
BALL::TSphere3
Definition: sphere3.h:33
BALL
Definition: constants.h:13
BALL::TriangulatedSAS
Definition: triangulatedSAS.h:63
BALL::GraphFace
Definition: graphFace.h:29
BALL::SASFace::ConstOrientationIterator
std::list< bool >::const_iterator ConstOrientationIterator
Definition: SASFace.h:56
sphere3.h
BALL::SASEdge
Definition: SASEdge.h:34
BALL_CREATE
#define BALL_CREATE(name)
Definition: create.h:62
BALL::SolventAccessibleSurface
Definition: solventAccessibleSurface.h:39
BALL::SASTriangulator
Definition: triangulatedSAS.h:161