00001
00006 #ifndef CELLTUPLE_H
00007 #define CELLTUPLE_H
00008
00019 template<class Vertex,class Edge,class Face>
00020 class CellTuple{
00021 public:
00022 Vertex* v;
00023 Edge* e;
00024 Face* f;
00027 CellTuple(): v(NULL), e(NULL), f(NULL)
00028 {
00029 }
00030
00036 CellTuple(Vertex *nv,Edge *ne,Face *nf): v(nv), e(ne), f(nf)
00037 {
00038 }
00039
00041 CellTuple(const CellTuple& tup) : v(tup.v), e(tup.e), f(tup.f)
00042 {
00043 }
00044
00046 CellTuple& operator=(const CellTuple& tup){
00047 v=tup.v;
00048 e=tup.e;
00049 f=tup.f;
00050 return *this;
00051 }
00052
00054 bool operator==(const CellTuple& other) const {
00055 return v == other.v
00056 && e == other.e
00057 && f == other.f;
00058 }
00059 bool operator!=(const CellTuple& other) const {
00060 return !operator==(other);
00061 }
00062
00064 void print(){
00065 std::cout<<"CellTuple:{"<<v<<", "<<e<<", "<<f<<"}"<<std::endl;
00066 }
00067
00069 void print_detail(){
00070 std::cout<<"CellTuple:{"<<*v<<*e<<*f<<"}"<<std::endl;
00071 }
00072 };
00073
00075 typedef CellTuple<class BezierVertex,class BezierEdge,class BezierTriangle> BezierTuple;
00076
00078 typedef CellTuple<class BoundaryVertex,class BoundaryEdge,class BoundaryFace> BoundaryTuple;
00079
00080 #endif