00001
00002
00004
00005 #ifndef TEMPLATEFACE_H
00006 #define TEMPLATEFACE_H
00007
00008 #include "MESH_SceneGraphTypes.h"
00009
00010 #include <vector>
00011 #include <iostream>
00012
00013 namespace X3DTK {
00014 namespace MESH {
00015
00016 template<class A, class B, class C> class SFTemplateEdge;
00017
00019
00020 template<class FData, class VData, class EData>
00021 class SFTemplateFace
00022 {
00023 template<class A, class B, class C, class D> friend class TemplateMesh;
00024 public:
00026 inline unsigned int getIndex() const {return _index;};
00028 inline const MFTemplateEdge<EData, FData, VData> &getEdges() const {return _edges;};
00030 inline FData &data() {return _data;};
00032 inline const FData &data() const {return _data;};
00033
00034 private:
00035 const unsigned int _index;
00036 MFTemplateEdge<EData, FData, VData> _edges;
00037 FData _data;
00038
00040 SFTemplateFace(unsigned int i)
00041 : _index(i)
00042 {
00043 };
00044
00046 ~SFTemplateFace() {};
00047
00049 void addEdge(SFTemplateEdge<EData, FData, VData> *edge)
00050 {
00051 _edges.push_back(edge);
00052 };
00053 };
00054
00055 }
00056 }
00057
00058 #endif