BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
66  SASFace()
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