BALL 1.5.0
Loading...
Searching...
No Matches
RSFace.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_RSFACE_H
6#define BALL_STRUCTURE_RSFACE_H
7
8#ifndef BALL_STRUCTURE_GRAPHFACE_H
10#endif
11
12#ifndef BALL_MATHS_VECTOR3_H
13# include <BALL/MATHS/vector3.h>
14#endif
15
16namespace BALL
17{
18 class RSVertex;
19 class RSEdge;
20 class ReducedSurface;
21 class RSComputer;
22 class SolventExcludedSurface;
23 class SESComputer;
24 class SESSingularityCleaner;
25 class SESEdge;
26 class SESFace;
27 class SESVertex;
28 class TriangulatedSES;
29 class SASTriangulator;
30 class SolventAccessibleSurface;
31 class SASEdge;
32 class SASFace;
33 class SASVertex;
34 class TriangulatedSAS;
35 class SESTriangulator;
36
40 class BALL_EXPORT RSFace : public GraphTriangle< RSVertex,RSEdge,RSFace >
41 {
42 public:
43
66 friend class RSEdge;
67 friend class RSVertex;
68 friend class ReducedSurface;
69 friend class RSComputer;
70 friend class SESEdge;
71 friend class SESFace;
72 friend class SESVertex;
74 friend class SESComputer;
76 friend class TriangulatedSES;
77 friend class SESTriangulator;
78 friend class SASEdge;
79 friend class SASFace;
80 friend class SASVertex;
82 friend class TriangulatedSAS;
83 friend class SASTriangulator;
84
86
87
90
91
95 ;
96
104 RSFace(const RSFace& rsface, bool deep = false)
105 ;
106
121 RSFace(RSVertex* vertex1,
122 RSVertex* vertex2,
123 RSVertex* vertex3,
124 RSEdge* edge1,
125 RSEdge* edge2,
126 RSEdge* edge3,
127 const TVector3<double>& center,
128 const TVector3<double>& normal,
129 bool singular,
130 Index index);
131
135 virtual ~RSFace()
136 ;
137
139
142
149 void set(const RSFace& rsface, bool deep = false)
150 ;
151
157 RSFace& operator = (const RSFace& rsface)
158 ;
159
173 void set(RSVertex* vertex1,
174 RSVertex* vertex2,
175 RSVertex* vertex3,
176 RSEdge* edge1,
177 RSEdge* edge2,
178 RSEdge* edge3,
179 const TVector3<double>& center,
180 const TVector3<double>& normal,
181 bool singular,
182 Index index);
183
185
188
193 virtual bool operator == (const RSFace& rsface) const
194 ;
195
200 virtual bool operator != (const RSFace& rsface) const
201 ;
202
207 virtual bool operator *=(const RSFace& rsface) const
208 ;
209
214 bool isSingular() const
215 ;
216
218
221
225 void setCenter(const TVector3<double>& center)
226 ;
227
231 TVector3<double> getCenter() const
232 ;
233
238 void setNormal(const TVector3<double>& normal);
239
243 TVector3<double> getNormal() const
244 ;
245
248 void setSingular(bool singular)
249 ;
250
259 void remove
260 (HashSet<RSEdge*>& edges,
261 HashSet<RSVertex*>& vertices,
262 HashSet<RSFace*>& faces)
263 ;
264
266
267 protected:
268
269 /*_ @name Attributes
270 */
272
273 /*_ The center of the probe sphere defining the RSFace
274 */
275 TVector3<double> center_;
276 /*_ The vector orthogonal to the RSFace
277 */
278 TVector3<double> normal_;
279 /*_ singular
280 */
281 bool singular_;
282
284
285 };
286
290
293 BALL_EXPORT std::ostream& operator << (std::ostream& s, const RSFace& rsface);
294
296
297} // namespace BALL
298
299#endif // BALL_STRUCTURE_RSFACE_H
#define BALL_CREATE(name)
Definition create.h:62
STL namespace.
#define BALL_EXPORT