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

MESH_SFVertex.h

Go to the documentation of this file.
00001 
00002 //                            MESH_SFVertex.h                                 //
00004 
00005 #ifndef TEMPLATEVERTEX_H
00006 #define TEMPLATEVERTEX_H
00007 
00008 #include "MESH_SceneGraphTypes.h"
00009 #include "TypeList.h"
00010 
00011 #include <vector>
00012 
00013 namespace X3DTK {
00014 namespace MESH {
00015 
00016 template<class EData, class FData, class VData> class SFEdge;
00017 template<class FData, class VData, class EData> class SFFace;
00018 
00021 
00022 template<class VData, class EData, class FData>
00023 class SFVertex
00024 {
00025   template<class A, class B, class C> friend class VertexSet;
00026   template<class A, class B, class C, class D> friend class Mesh;
00027 public:
00029   inline unsigned int getIndex() const;
00031   inline const MFEdge<EData, FData, VData> &getEdges() const;
00033   inline const MFFace<FData, VData, EData> &getFaces() const;
00035   inline VData &data();
00037   inline const VData &data() const;
00039   template<class F, bool optional>  
00040   F &getData();
00041   
00042 private:
00043   const unsigned int _index;
00044   MFEdge<EData, FData, VData> _edges;
00045   MFFace<FData, VData, EData> _faces;
00046   VData _data;
00047 
00049   SFVertex(unsigned int i);
00051   ~SFVertex();
00052   
00054   void addEdge(SFEdge<EData, FData, VData> *E);
00056   void addFace(SFFace<FData, VData, EData> *F);
00057 };
00058 
00059 }
00060 }
00061 
00062 #include "MESH_SFVertex.inl"
00063 
00064 #endif

Generated on Mon Jan 19 10:32:05 2004 for X3DToolKit by doxygen1.2.18