00001
00002
00003
00004
00005
00006
00007 #ifndef BALL_STRUCTURE_TRIANGLEEDGE_H
00008 #define BALL_STRUCTURE_TRIANGLEEDGE_H
00009
00010 #ifndef BALL_STRUCTURE_GRAPHEDGE_H
00011 # include <BALL/STRUCTURE/graphEdge.h>
00012 #endif
00013
00014 #ifndef BALL_STRUCTURE_GRAPHFACE_H
00015 # include <BALL/STRUCTURE/graphFace.h>
00016 #endif
00017
00018 #ifndef BALL_STRUCTURE_GRAPHVERTEX_H
00019 # include <BALL/STRUCTURE/graphVertex.h>
00020 #endif
00021
00022
00023 namespace BALL
00024 {
00025
00026 class Triangle;
00027 class TrianglePoint;
00028 class TriangulatedSurface;
00029 class TriangulatedSphere;
00030 class TriangulatedSES;
00031 class TriangulatedSAS;
00032 class SESTriangulator;
00033 class SASTriangulator;
00034
00035
00039 class BALL_EXPORT TriangleEdge
00040 : public GraphEdge< TrianglePoint,TriangleEdge,Triangle >
00041 {
00042
00043 public:
00044
00057 friend class Triangle;
00058 friend class TrianglePoint;
00059 friend class TriangulatedSurface;
00060 friend class TriangulatedSphere;
00061 friend class TriangulatedSES;
00062 friend class TriangulatedSAS;
00063 friend class SESTriangulator;
00064 friend class SASTriangulator;
00065
00066 BALL_CREATE(TriangleEdge)
00067
00068
00071
00075 TriangleEdge();
00076
00082 TriangleEdge(TrianglePoint* v1, TrianglePoint* v2);
00083
00091 TriangleEdge(const TriangleEdge& edge, bool deep = false);
00092
00096 virtual ~TriangleEdge();
00098
00102
00107 void setPoint(Position i, TrianglePoint* point);
00108
00114 TrianglePoint* getPoint(Position i) const;
00115
00121 void setTriangle(Position i, Triangle* triangle);
00122
00128 Triangle* getTriangle(Position i) const;
00129
00131
00135
00140 virtual bool operator == (const TriangleEdge&) const;
00141
00146 virtual bool operator != (const TriangleEdge&) const;
00147
00151 virtual bool operator *= (const TriangleEdge&) const;
00152
00154
00155 };
00156
00157
00161
00164 BALL_EXPORT std::ostream& operator << (std::ostream& s, const TriangleEdge& edge);
00165
00167
00168
00169 }
00170
00171
00172 #endif // BALL_STRUCTURE_TRIANGLEEDGE_H