Main Page | Modules | Namespace List | Class Hierarchy | Compound List | File List | Namespace Members | Compound 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_SceneGraphTypes.h"
00005 
00006 #include <vector>
00007 #include <iostream>
00008 
00009 namespace X3DTK {
00010 namespace MESH {
00011 
00012 template<class EData, class FData, class VData, bool readOnly> class SFEdge;
00013 
00020 template<class FData, class VData, class EData, bool readOnly = true>
00021 class SFFace
00022 {
00023   template<class A, class B, class C, class D, bool E> friend class Mesh;
00024 public:
00025   typedef EntityMFEdge<EData, FData, VData, readOnly> MFEdge;
00026   
00028   inline unsigned int getIndex() const;
00030   inline const MFEdge &getEdges() const;
00032   inline FData &data();
00034   inline const FData &data() const;
00036   template<class F>  
00037   F &getData();
00039   template<class F>  
00040   F &ogetData();
00042   void reverse();
00043   
00044 private:
00045   const unsigned int _index;
00046   MFEdge _edges;
00047   FData _data;
00048   
00050   SFFace(unsigned int i);
00052   ~SFFace();
00053   
00055   void addEdge(SFEdge<EData, FData, VData, readOnly> *edge);
00056 };
00057 
00059 template<class FData, class VData, class EData, bool readOnly>
00060 std::ostream& operator<<(std::ostream& o, const SFFace<FData, VData, EData, readOnly> &f);
00061 
00062 }
00063 }
00064 
00065 #include "MESH_SFFace.inl"
00066 
00067 #endif

Generated on Wed Apr 7 12:15:20 2004 for X3DToolKit by doxygen 1.3.3