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

MESH_SFTemplateEdgeContent.h

Go to the documentation of this file.
00001 
00002 //                            MESH_SFTemplateEdgeContent.h                    //
00004 
00005 #ifndef TEMPLATEEDGECONTENT_H
00006 #define TEMPLATEEDGECONTENT_H
00007 
00008 #include "MESH_SceneGraphTypes.h"
00009 
00010 #include <vector>
00011 
00012 namespace X3DTK {
00013 namespace MESH {
00014 
00015 template<class A, class B, class C> class SFTemplateVertex;
00016 template<class A, class B, class C> class SFTemplateFace;
00017 
00020 
00021 template<class EData, class FData, class VData>
00022 class SFTemplateEdgeContent
00023 {
00024   template<class A, class B, class C, class D> friend class TemplateMesh;
00025   template<class A, class B, class C> friend class SFTemplateEdge;
00026 public:
00028   inline SFTemplateVertex<VData, EData, FData> *getFromVertex() const {return _from;};
00030   inline SFTemplateVertex<VData, EData, FData> *getToVertex() const {return _to;};
00032   inline const MFTemplateFace<FData, VData, EData> &get1Faces() const {return _r1Faces;};
00034   inline const MFTemplateFace<FData, VData, EData> &get2Faces() const {return _r2Faces;};
00036   inline bool isBoundary() const 
00037   {
00038     return _isBoundary;
00039   };
00041   inline EData &data() {return _data;};
00043   inline const EData &data() const {return _data;};
00044 
00045 private:
00046   SFTemplateVertex<VData, EData, FData> *const _from;
00047   SFTemplateVertex<VData, EData, FData> *const _to;
00048   MFTemplateFace<FData, VData, EData> _r1Faces;
00049   MFTemplateFace<FData, VData, EData> _r2Faces;
00050   bool _isBoundary;
00051   EData _data;
00052   
00054   SFTemplateEdgeContent(SFTemplateVertex<VData, EData, FData> * from, SFTemplateVertex<VData, EData, FData> *const to) 
00055   : _from(from), _to(to), _isBoundary(true)
00056   {};
00057   
00059   ~SFTemplateEdgeContent() {};
00060     
00062   void add1Face(SFTemplateFace<FData, VData, EData> *face) 
00063   {
00064     _r1Faces.push_back(face);
00065     if (_r2Faces.size() > 0)
00066       _isBoundary = false;
00067   };
00069   void add2Face(SFTemplateFace<FData, VData, EData> *face) 
00070   {
00071     _r2Faces.push_back(face);
00072     if (_r1Faces.size() > 0)
00073       _isBoundary = false;
00074   };
00075 
00076 };
00077 
00078 }
00079 }
00080 
00081 #endif

Generated on Thu Dec 4 13:25:47 2003 for X3DToolKit by doxygen1.2.18