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 //                            TemplateVertex.h                                //
00004 
00005 #ifndef TEMPLATEVERTEX_H
00006 #define TEMPLATEVERTEX_H
00007 
00008 #include "MeshSceneGraphTypes.h"
00009 
00010 #include <vector>
00011 
00012 namespace X3DTK {
00013 namespace MESH {
00014 
00015 template<class A, class B, class C> class TemplateEdge;
00016 template<class A, class B, class C> class TemplateFace;
00017 
00020 
00021 template<class VData, class EData, class FData>
00022 class TemplateVertex
00023 {
00024   template<class A, class B, class C, class D> friend class TemplateMesh;
00025 public:
00027   inline unsigned int getIndex() const {return _index;};
00029   inline const MTemplateEdge<EData, FData, VData> &getEdges() const {return _edges;};
00031   inline const MTemplateFace<FData, VData, EData> &getFaces() const {return _faces;};
00033   inline VData &data() {return _data;};
00035   inline const VData &data() const {return _data;};
00036   
00037 private:
00038   const unsigned int _index;
00039   MTemplateEdge<EData, FData, VData> _edges;
00040   MTemplateFace<FData, VData, EData> _faces;
00041   VData _data;
00042 
00044   TemplateVertex(unsigned int i)
00045   : _index(i) {};
00047   void addEdge(TemplateEdge<EData, FData, VData> *E) {_edges.back() = E; _edges.push_back((TemplateEdge<EData, FData, VData> *)(0x1));};
00049   void addFace(TemplateFace<FData, VData, EData> *F) {_faces.back() = F; _faces.push_back((TemplateFace<FData, VData, EData> *)(0x1));};
00050 };
00051 
00052 }
00053 }
00054 
00055 #endif

Generated on Thu Oct 9 13:50:54 2003 for X3DToolKit by doxygen1.2.18