BALL 1.5.0
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
14#endif
15
16#ifndef BALL_MATHS_CIRCLE3_H
17# include <BALL/MATHS/circle3.h>
18#endif
19
20namespace 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;
51 friend class SESComputer;
53 friend class TriangulatedSES;
54 friend class SESTriangulator;
55
57
58
61
62
67 enum Type
68 {
69 TYPE_CONCAVE = 0,
70 TYPE_CONVEX = 1,
71 TYPE_SINGULAR = 2
72 };
73
74
76
79
84 ;
85
93 SESEdge(const SESEdge& sesedge, bool deep = false)
94 ;
95
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
181 ;
182
186 void setRSEdge(RSEdge* rsedge)
187 ;
188
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
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
Definition: constants.h:13
BALL_EXPORT bool operator==(const String &s1, const String &s2)
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
Type type_
Definition: SESEdge.h:256
RSEdge * rsedge_
Definition: SESEdge.h:252
bool isFree() const
SESEdge(const SESEdge &sesedge, bool deep=false)
virtual ~SESEdge()
SESEdge(SESVertex *vertex0, SESVertex *vertex1, SESFace *face0, SESFace *face1, const TCircle3< double > &circle, RSEdge *rsedge, Type type, Index index)
void set(SESVertex *vertex0, SESVertex *vertex1, SESFace *face0, SESFace *face1, const TCircle3< double > &circle, RSEdge *rsedge, Type type, Index index)
RSEdge * getRSEdge() const
Type getType() const
TCircle3< double > getCircle() const
void setRSEdge(RSEdge *rsedge)
void setType(Type type)
void set(const SESEdge &sesedge, bool deep=false)
void setCircle(const TCircle3< double > &center)
TCircle3< double > circle_
Definition: SESEdge.h:249
#define BALL_EXPORT
Definition: COMMON/global.h:50