00001
00002
00003
00005
00006
00011
00016
00021
00023
00024 #ifndef TEMPLATEFACE_H
00025 #define TEMPLATEFACE_H
00026
00027 #include "MeshTypes.h"
00028
00029 #include <vector>
00030 #include <iostream>
00031
00032 namespace X3DTK {
00033 namespace Mesh {
00034
00035 template<class A, class B, class C> class TemplateEdge;
00036
00038
00039 template<class FData, class VData, class EData>
00040 class TemplateFace
00041 {
00042 template<class A, class B, class C, class D> friend class TemplateMesh;
00043 public:
00045 inline unsigned int getIndex() const {return _index;};
00047 inline const MTemplateEdge<EData, FData, VData> &getEdges() const {return _edges;};
00049 inline FData &data() {return _data;};
00051 inline const FData &data() const {return _data;};
00052
00053 private:
00054 const unsigned int _index;
00055 MTemplateEdge<EData, FData, VData> _edges;
00056 FData _data;
00057
00059 TemplateFace(unsigned int i, const MTemplateEdge<EData, FData, VData> &edges)
00060 : _index(i), _edges(edges)
00061 {
00062 if (edges.size() == 0)
00063 std::cerr << "Mesh::TemplateFace : cannot create a face of 0 edge!" << std::endl;
00064 };
00065 };
00066
00067 }
00068 }
00069
00070 #endif