Main Page | Modules | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

MESH_SFFace.h

Go to the documentation of this file.
00001 #ifndef X3DTK_MESH_SFFACE_H
00002 #define X3DTK_MESH_SFFACE_H
00003 
00004 #include "MESH_BaseSFFace.h"
00005 
00006 #include <vector>
00007 #include <iostream>
00008 
00009 namespace X3DTK {
00010 namespace MESH {
00011 
00012 template<class MData, class VData, class EData, class FData, bool RW> class TemplateMesh;
00013 template<class MData, class VData, class EData, class FData, bool RW> class SFTemplateEdge;
00014 template<class MData, class VData, class EData, class FData, bool RW> class EntityMFTemplateEdge;
00015 
00022 template<class MData, class VData, class EData, class FData, bool RW>
00023 class SFTemplateFace : public BaseSFFace
00024 {
00025   friend class TemplateMesh<MData, VData, EData, FData, RW>;
00026 public:
00027   typedef EntityMFTemplateEdge<MData, VData, EData, FData, RW> MFEdge;
00028   
00030   inline const MFEdge &getEdges() const;
00032   inline FData &data();
00034   inline const FData &data() const;
00036   void reverse();
00037 
00038 #ifdef TEMPLATE_SPECIALIZATION_SUPPORTED
00039 
00040   template<class F>  
00041   F &getData();
00043   template<class F>  
00044   F &ogetData();
00045 #endif
00046   
00047 private:
00048   MFEdge _edges;
00049   FData _data;
00050   
00052   SFTemplateFace(unsigned int i);
00054   ~SFTemplateFace();
00055   
00057   void addEdge(SFTemplateEdge<MData, VData, EData, FData, RW> *edge);
00058 };
00059 
00061 template<class MData, class VData, class EData, class FData, bool RW>
00062 std::ostream& operator<<(std::ostream& o, const SFTemplateFace<MData, VData, EData, FData, RW> &f);
00063 
00064 }
00065 }
00066 
00067 #include "MESH_SFFace.inl"
00068 
00069 #endif

Generated on Thu Jun 3 10:12:09 2004 for X3DToolKit by doxygen 1.3.6