Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

TemplateVertex.h

Go to the documentation of this file.
00001 
00002 
00003 
00005 
00006 
00011 
00016 
00021 //                            TemplateVertex.h                                //
00023 
00024 #ifndef TEMPLATEVERTEX_H
00025 #define TEMPLATEVERTEX_H
00026 
00027 #include "MeshTypes.h"
00028 
00029 #include <vector>
00030 
00031 namespace X3DTK {
00032 namespace Mesh {
00033 
00034 template<class A, class B, class C> class TemplateEdge;
00035 template<class A, class B, class C> class TemplateFace;
00036 
00039 
00040 template<class VData, class EData, class FData>
00041 class TemplateVertex
00042 {
00043   template<class A, class B, class C, class D> friend class TemplateMesh;
00044 public:
00046   inline unsigned int getIndex() const {return _index;};
00048   inline const MTemplateEdge<EData, FData, VData> &getEdges() const {return _edges;};
00050   inline const MTemplateFace<FData, VData, EData> &getFaces() const {return _faces;};
00052   inline VData &data() {return _data;};
00054   inline const VData &data() const {return _data;};
00055   
00056 private:
00057   const unsigned int _index;
00058   MTemplateEdge<EData, FData, VData> _edges;
00059   MTemplateFace<FData, VData, EData> _faces;
00060   VData _data;
00061 
00063   TemplateVertex(unsigned int i)
00064   : _index(i) {};
00066   void addEdge(TemplateEdge<EData, FData, VData> *E) {_edges.back() = E; _edges.push_back((TemplateEdge<EData, FData, VData> *)(0x1));};
00068   void addFace(TemplateFace<FData, VData, EData> *F) {_faces.back() = F; _faces.push_back((TemplateFace<FData, VData, EData> *)(0x1));};
00069 };
00070 
00071 }
00072 }
00073 
00074 #endif

Generated on Wed Sep 10 11:25:14 2003 for X3DToolKit by doxygen1.3