BALL  1.4.79
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
SESEdge.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_SESEDGE_H
6 #define BALL_STRUCTURE_SESEDGE_H
7 
8 #ifndef BALL_STRUCTURE_GRAPHEDGE_H
10 #endif
11 
12 #ifndef BALL_STRUCTURE_RSEDGE_H
13 # include <BALL/STRUCTURE/RSEdge.h>
14 #endif
15 
16 #ifndef BALL_MATHS_CIRCLE3_H
17 # include <BALL/MATHS/circle3.h>
18 #endif
19 
20 namespace BALL
21 {
22  class SESFace;
23  class SESVertex;
24  class SolventExcludedSurface;
25  class TriangulatedSES;
26  class SESComputer;
27  class SESSingularityCleaner;
28  class SESTriangulator;
29 
33  class BALL_EXPORT SESEdge : public GraphEdge< SESVertex,SESEdge,SESFace >
34  {
35  public:
36 
48  friend class SESFace;
49  friend class SESVertex;
50  friend class SolventExcludedSurface;
51  friend class SESComputer;
52  friend class SESSingularityCleaner;
53  friend class TriangulatedSES;
54  friend class SESTriangulator;
55 
57 
58 
61 
67  enum Type
68  {
69  TYPE_CONCAVE = 0,
70  TYPE_CONVEX = 1,
71  TYPE_SINGULAR = 2
72  };
73 
74 
76 
79 
83  SESEdge()
84  ;
85 
93  SESEdge(const SESEdge& sesedge, bool deep = false)
94  ;
95 
107  SESEdge
108  (SESVertex* vertex0,
109  SESVertex* vertex1,
110  SESFace* face0,
111  SESFace* face1,
112  const TCircle3<double>& circle,
113  RSEdge* rsedge,
114  Type type,
115  Index index)
116  ;
117 
121  virtual ~SESEdge()
122  ;
123 
125 
128 
135  void set(const SESEdge& sesedge, bool deep = false)
136  ;
137 
143  SESEdge& operator = (const SESEdge& sesedge)
144  ;
145 
156  void set(SESVertex* vertex0,
157  SESVertex* vertex1,
158  SESFace* face0,
159  SESFace* face1,
160  const TCircle3<double>& circle,
161  RSEdge* rsedge,
162  Type type,
163  Index index)
164  ;
165 
167 
170 
174  void setCircle(const TCircle3<double>& center)
175  ;
176 
180  TCircle3<double> getCircle() const
181  ;
182 
186  void setRSEdge(RSEdge* rsedge)
187  ;
188 
192  RSEdge* getRSEdge() const
193  ;
194 
198  void setType(Type type)
199  ;
200 
204  Type getType() const
205  ;
206 
208 
211 
216  virtual bool operator == (const SESEdge& sesedge) const
217  ;
218 
223  virtual bool operator != (const SESEdge& sesedge) const
224  ;
225 
229  virtual bool operator *= (const SESEdge&) const
230  ;
231 
236  bool isFree() const
237  ;
238 
240 
241  protected:
242 
243  /*_ @name Attributes
244  */
246 
247  /*_ The circle on which the SESEdge lies.
248  */
250  /*_ A pointer to the corresponding RSEdge.
251  */
253  /*_ The type of the SESEdge.
254  */
255  //int type;
257 
259  };
260 
264 
267  BALL_EXPORT std::ostream& operator << (std::ostream& s, const SESEdge& sesedge);
268 
270 
271 
272 } // namespace BALL
273 
274 #endif // BALL_STRUCTURE_SESEDGE_H
#define BALL_CREATE(name)
Definition: create.h:62
RSEdge * rsedge_
Definition: SESEdge.h:252
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
Type type_
Definition: SESEdge.h:256
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
BALL_EXPORT bool operator==(const String &s1, const String &s2)
#define BALL_EXPORT
Definition: COMMON/global.h:50
TCircle3< double > circle_
Definition: SESEdge.h:249