MESH_SFIndirectEdge.h

Go to the documentation of this file.
00001 #ifndef X3DTK_MESH_SFINDIRECTEDGE_H
00002 #define X3DTK_MESH_SFINDIRECTEDGE_H
00003 
00004 #include "MESH_SFEdge.h"
00005 
00006 namespace X3DTK {
00007 namespace MESH {
00008 
00015 template<class MData, class VData, class EData, class FData, bool RW>
00016 class SFTemplateIndirectEdge : public SFTemplateEdge<MData, VData, EData, FData, RW>
00017 {
00018   friend class TemplateMesh<MData, VData, EData, FData, RW>;
00019   friend class TemplateVertex<MData, VData, EData, FData, RW>;
00020 public:
00021   typedef EntityMFTemplateFace<MData, VData, EData, FData, RW> MFFace;
00022   
00024   SFTemplateVertex<MData, VData, EData, FData, RW> *getFromVertex() const;
00026   SFTemplateVertex<MData, VData, EData, FData, RW> *getToVertex() const;
00028   const MFFace &getLeftFaces() const;
00030   const MFFace &getRightFaces() const;
00031   
00032 private:  
00034   SFTemplateIndirectEdge(SFTemplateEdgeContent<MData, VData, EData, FData, RW> *const edgeContent);
00036   ~SFTemplateIndirectEdge();
00037 
00039   void addLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face);
00041   void addRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face);
00042 
00044   void removeLeftFace(SFTemplateFace<MData, VData, EData, FData, RW> *face);
00046   void removeRightFace(SFTemplateFace<MData, VData, EData, FData, RW> *face);
00047 };
00048 
00049 }
00050 }
00051 
00052 #include "MESH_SFIndirectEdge.inl"
00053 
00054 #endif

Generated on Fri Jul 30 12:02:28 2004 for X3DToolKit by doxygen 1.3.6