BALL 1.5.0
Loading...
Searching...
No Matches
SESFace.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_SESFACE_H
6#define BALL_STRUCTURE_SESFACE_H
7
8#ifndef BALL_STRUCTURE_GRAPHFACE_H
10#endif
11
12#ifndef BALL_STRUCTURE_RSEDGE_H
14#endif
15
16#ifndef BALL_STRUCTURE_RSFACE_H
18#endif
19
20#ifndef BALL_STRUCTURE_RSVERTEX_H
22#endif
23
24namespace BALL
25{
26 class SESEdge;
27 class SESVertex;
29 class TriangulatedSES;
30 class SESComputer;
32 class SESTriangulator;
33
37 class BALL_EXPORT SESFace : public GraphFace< SESVertex,SESEdge,SESFace >
38 {
39 public:
40
52 friend class SESEdge;
53 friend class SESVertex;
55 friend class SESComputer;
57 friend class TriangulatedSES;
58 friend class SESTriangulator;
59
61
62
65
79
81
84
89 ;
90
98 SESFace(const SESFace& sesface, bool deep = false)
99 ;
100
109 (Type type,
110 RSVertex* rsvertex,
111 RSEdge* rsedge,
112 RSFace* rsface)
113 ;
114
118 virtual ~SESFace()
119 ;
120
122
125
132 void set(const SESFace& sesface, bool deep = false)
133 ;
134
140 SESFace& operator = (const SESFace& sesface)
141 ;
142
146 void setType(Type type)
147 ;
148
152 Type getType() const
153 ;
154
158 void setRSVertex(RSVertex* rsvertex)
159 ;
160
165 ;
166
170 void setRSEdge(RSEdge* rsedge)
171 ;
172
177 ;
178
182 void setRSFace(RSFace* rsface)
183 ;
184
189 ;
190
192
195
198 void normalize(bool singular)
199 ;
200
202
205
209 virtual bool operator == (const SESFace&) const
210 ;
211
215 virtual bool operator != (const SESFace&) const
216 ;
217
221 virtual bool operator *= (const SESFace&) const
222 ;
223
230 bool isNeighbouredTo(SESFace* face) const
231 ;
232
237 bool isFree() const
238 ;
239
244 bool hasSingularEdges() const
245 ;
246
248
249 private:
250
251 void normalizeNonSingularToricFace_()
252 ;
253
254 void normalizeSingularToricFace_()
255 ;
256
257 void findTriangle_
258 (bool first,
259 SESEdge*& edge0,
260 SESEdge*& edge1,
261 SESEdge*& edge2,
262 SESVertex*& vertex0,
263 SESVertex*& vertex1,
264 SESVertex*& vertex2)
265 ;
266
267 protected:
268
272
273 /*_ The type of the face.
274 */
276 /*_ A pointer to the corresponding RSVertex
277 (if type_ is TYPE_CONTACT).
278 */
280 /*_ A pointer to the corresponding RSEdge
281 (if type_ is TYPE_TORIC or TYPE_TORIC_SINGULAR).
282 */
284 /*_ A pointer to the corresponding RSFace
285 (if type_ is TYPE_SPHERIC).
286 */
288
290 };
291
295
298 BALL_EXPORT std::ostream& operator << (std::ostream& s, const SESFace& sesface);
299
301
302
303} // namespace BALL
304
305#endif // BALL_STRUCTURE_SESFACE_H
#define BALL_EXPORT
RSEdge * rsedge_
Definition SESFace.h:283
friend class SESTriangulator
Definition SESFace.h:58
virtual ~SESFace()
friend class SESEdge
Definition SESFace.h:52
RSFace * rsface_
Definition SESFace.h:287
bool hasSingularEdges() const
void setRSEdge(RSEdge *rsedge)
@ TYPE_TORIC_SINGULAR
Definition SESFace.h:77
bool isNeighbouredTo(SESFace *face) const
RSVertex * rsvertex_
Definition SESFace.h:279
void normalize(bool singular)
Type getType() const
friend class SolventExcludedSurface
Definition SESFace.h:54
SESFace(const SESFace &sesface, bool deep=false)
friend class TriangulatedSES
Definition SESFace.h:57
friend class SESVertex
Definition SESFace.h:53
friend class SESSingularityCleaner
Definition SESFace.h:56
void setRSFace(RSFace *rsface)
RSEdge * getRSEdge() const
void set(const SESFace &sesface, bool deep=false)
RSVertex * getRSVertex() const
void setType(Type type)
bool isFree() const
friend class SESComputer
Definition SESFace.h:55
RSFace * getRSFace() const
void setRSVertex(RSVertex *rsvertex)
SESFace(Type type, RSVertex *rsvertex, RSEdge *rsedge, RSFace *rsface)
#define BALL_CREATE(name)
Definition create.h:62
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)