BALL  1.4.2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
trianglePoint.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_TRIANGLEPOINT_H
6 #define BALL_STRUCTURE_TRIANGLEPOINT_H
7 
8 #ifndef BALL_MATHS_VECTOR3_H
9 # include <BALL/MATHS/vector3.h>
10 #endif
11 
12 #ifndef BALL_STRUCTURE_GRAPHEDGE_H
14 #endif
15 
16 #ifndef BALL_STRUCTURE_GRAPHFACE_H
18 #endif
19 
20 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
22 #endif
23 
24 
25 namespace BALL
26 {
27 
28  class TriangleEdge;
29  class Triangle;
30  class TriangulatedSurface;
31  class TriangulatedSphere;
32  class TriangulatedSES;
33  class SESTriangulator;
34  class TriangulatedSAS;
35  class SASTriangulator;
36 
37 
42  : public GraphVertex< TrianglePoint,TriangleEdge,Triangle >
43  {
44 
45  public:
46 
59  friend class Triangle;
60  friend class TriangleEdge;
61  friend class TriangulatedSurface;
62  friend class TriangulatedSphere;
63  friend class TriangulatedSES;
64  friend class SESTriangulator;
65  friend class TriangulatedSAS;
66  friend class SASTriangulator;
67 
69 
70 
73 
78  ;
79 
84  TrianglePoint(const TVector3<double>& point, const TVector3<double>& normal = TVector3<double>(0.));
85 
93  TrianglePoint(const TrianglePoint& point, bool deep = false)
94  ;
95 
99  virtual ~TrianglePoint()
100  ;
101 
103 
106 
114  void set(const TrianglePoint& point, bool deep = false)
115  ;
116 
122  TrianglePoint& operator = (const TrianglePoint& point)
123  ;
124 
126 
129 
132  TVector3<double> getPoint() const
133  ;
134 
137  void setPoint(const TVector3<double>& point)
138  ;
139 
142  TVector3<double> getNormal() const
143  ;
144 
147  void setNormal(const TVector3<double>& normal)
148  throw(Exception::DivisionByZero);
149 
151 
155 
160  virtual bool operator == (const TrianglePoint& point) const
161  ;
162 
167  virtual bool operator != (const TrianglePoint& point) const
168  ;
169 
174  virtual bool operator *= (const TrianglePoint& point) const
175  ;
176 
178 
179  protected:
180 
181  /*_ The point itself
182  */
183  TVector3<double> point_;
184  /*_ The normal vector of the point
185  */
186  TVector3<double> normal_;
187 
188  };
189 
190 
194 
197  BALL_EXPORT std::ostream& operator << (std::ostream& s, const TrianglePoint& point);
198 
200 
201 
202 } // namespace BALL
203 
204 
205 #endif // BALL_STRUCTURE_TRIANGLEPOINT_H