BALL
1.5.0
include
BALL
STRUCTURE
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
9
# include <
BALL/STRUCTURE/graphFace.h
>
10
#endif
11
12
#ifndef BALL_STRUCTURE_RSEDGE_H
13
# include <
BALL/STRUCTURE/RSEdge.h
>
14
#endif
15
16
#ifndef BALL_STRUCTURE_RSFACE_H
17
# include <
BALL/STRUCTURE/RSFace.h
>
18
#endif
19
20
#ifndef BALL_STRUCTURE_RSVERTEX_H
21
# include <
BALL/STRUCTURE/RSVertex.h
>
22
#endif
23
24
namespace
BALL
25
{
26
class
SESEdge;
27
class
SESVertex;
28
class
SolventExcludedSurface;
29
class
TriangulatedSES;
30
class
SESComputer;
31
class
SESSingularityCleaner;
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
;
54
friend
class
SolventExcludedSurface
;
55
friend
class
SESComputer
;
56
friend
class
SESSingularityCleaner
;
57
friend
class
TriangulatedSES
;
58
friend
class
SESTriangulator
;
59
60
BALL_CREATE
(
SESFace
)
61
62
65
72
enum
Type
73
{
74
TYPE_SPHERIC = 0,
75
TYPE_TORIC = 1,
76
TYPE_CONTACT = 2,
77
TYPE_TORIC_SINGULAR = 3
78
};
79
81
84
88
SESFace
()
89
;
90
98
SESFace
(
const
SESFace
& sesface,
bool
deep =
false
)
99
;
100
108
SESFace
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
164
RSVertex
* getRSVertex()
const
165
;
166
170
void
setRSEdge(
RSEdge
* rsedge)
171
;
172
176
RSEdge
* getRSEdge()
const
177
;
178
182
void
setRSFace(
RSFace
* rsface)
183
;
184
188
RSFace
* getRSFace()
const
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
*/
275
Type
type_
;
276
/*_ A pointer to the corresponding RSVertex
277
(if type_ is TYPE_CONTACT).
278
*/
279
RSVertex
*
rsvertex_
;
280
/*_ A pointer to the corresponding RSEdge
281
(if type_ is TYPE_TORIC or TYPE_TORIC_SINGULAR).
282
*/
283
RSEdge
*
rsedge_
;
284
/*_ A pointer to the corresponding RSFace
285
(if type_ is TYPE_SPHERIC).
286
*/
287
RSFace
*
rsface_
;
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
BALL::operator!=
BALL_EXPORT bool operator!=(const String &s1, const String &s2)
RSVertex.h
BALL::SESTriangulator
Definition:
triangulatedSES.h:163
BALL::RSEdge
Definition:
RSEdge.h:48
graphFace.h
RSEdge.h
BALL::RSVertex
Definition:
RSVertex.h:37
BALL::TriangulatedSES
Definition:
triangulatedSES.h:54
BALL
Definition:
constants.h:12
BALL::SolventExcludedSurface
Definition:
solventExcludedSurface.h:66
BALL::SESVertex
Definition:
SESVertex.h:29
BALL::SESEdge
Definition:
SESEdge.h:33
BALL::GraphFace
Definition:
graphEdge.h:21
BALL::SESFace::rsface_
RSFace * rsface_
Definition:
SESFace.h:287
BALL::SESSingularityCleaner
Definition:
solventExcludedSurface.h:456
BALL::SESFace::rsvertex_
RSVertex * rsvertex_
Definition:
SESFace.h:279
BALL::operator==
BALL_EXPORT bool operator==(const String &s1, const String &s2)
BALL::operator<<
BALL_EXPORT std::ostream & operator<<(std::ostream &os, const Exception::GeneralException &e)
BALL::SESFace::Type
Type
Definition:
SESFace.h:72
BALL::SESFace::type_
Type type_
Definition:
SESFace.h:275
BALL::SESComputer
Definition:
solventExcludedSurface.h:317
BALL_CREATE
#define BALL_CREATE(name)
Definition:
create.h:62
BALL::SESFace::rsedge_
RSEdge * rsedge_
Definition:
SESFace.h:283
BALL_EXPORT
#define BALL_EXPORT
Definition:
COMMON/global.h:50
RSFace.h
BALL::SESFace
Definition:
SESFace.h:37
BALL::RSFace
Definition:
RSFace.h:40
Generated by
1.8.17