BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SASEdge.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_SASEDGE_H
6 #define BALL_STRUCTURE_SASEDGE_H
7 
8 #ifndef BALL_STRUCTURE_GRAPHEDGE_H
10 #endif
11 
12 #ifndef BALL_MATHS_ANGLE_H
13 # include <BALL/MATHS/angle.h>
14 #endif
15 
16 #ifndef BALL_MATHS_CIRCLE3_H
17 # include <BALL/MATHS/circle3.h>
18 #endif
19 
20 namespace BALL
21 {
22 
23  class SolventAccessibleSurface;
24  class SASFace;
25  class SASVertex;
26  class RSEdge;
27  class TriangulatedSAS;
28  class SASTriangulator;
29 
33  class BALL_EXPORT SASEdge : public GraphEdge< SASVertex,SASEdge,SASFace >
34  {
35  public:
36 
46  friend class SASVertex;
47  friend class SASFace;
49  friend class TriangulatedSAS;
50  friend class SASTriangulator;
51 
53 
54 
57 
61  SASEdge()
62  ;
63 
71  SASEdge(const SASEdge& sasedge, bool deep = false)
72  ;
73 
84  SASEdge(SASVertex* vertex0,
85  SASVertex* vertex1,
86  SASFace* face0,
87  SASFace* face1,
88  const TCircle3<double>& circle,
89  const TAngle<double>& angle,
90  Index index)
91  ;
92 
96  virtual ~SASEdge()
97  ;
98 
100 
103 
110  void set(const SASEdge& sasedge, bool deep = false)
111  ;
112 
118  SASEdge& operator = (const SASEdge& sasedge)
119  ;
120 
130  void set(SASVertex* vertex0,
131  SASVertex* vertex1,
132  SASFace* face0,
133  SASFace* face1,
134  const TCircle3<double>& circle,
135  const TAngle<double>& angle,
136  Index index)
137  ;
138 
140 
143 
147  void setCircle(const TCircle3<double>& center)
148  ;
149 
153  TCircle3<double> getCircle() const
154  ;
155 
159  void setAngle(const TAngle<double>& angle)
160  ;
161 
165  TAngle<double> getAngle() const
166  ;
167 
169 
172 
176  virtual bool operator == (const SASEdge&) const
177  ;
178 
182  virtual bool operator != (const SASEdge&) const
183  ;
184 
188  virtual bool operator *= (const SASEdge&) const
189  ;
190 
195  bool isFree() const
196  ;
197 
199 
200  protected:
201 
202  /*_ @name Attributes
203  */
205 
206  /*_ The circle on which the SASEdge lies.
207  */
208  TCircle3<double> circle_;
209  /*_ The angle of the SASEdge.
210  */
211  TAngle<double> angle_;
212 
214  };
215 
219 
222  BALL_EXPORT std::ostream& operator << (std::ostream& s, const SASEdge& sasedge);
223 
225 
226 
227 } // namespace BALL
228 
229 #endif // BALL_STRUCTURE_SASEDGE_H