triangleEdge.h

Go to the documentation of this file.
00001 // -*- Mode: C++; tab-width: 2; -*-
00002 // vi: set ts=2:
00003 //
00004 // $Id: triangleEdge.h,v 1.11.18.1 2007/03/25 21:25:33 oliver Exp $
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 } // namespace BALL
00170 
00171 
00172 #endif  // BALL_STRUCTURE_TRIANGLEEDGE_H