00001
00002
00004
00005 #ifndef TEMPLATEDIRECTEDGE_H
00006 #define TEMPLATEDIRECTEDGE_H
00007
00008 #include "MESH_SFEdge.h"
00009
00010 namespace X3DTK {
00011 namespace MESH {
00012
00014
00015 template<class EData, class FData, class VData>
00016 class SFDirectEdge : public SFEdge<EData, FData, VData>
00017 {
00018 template<class A, class B, class C, class D> friend class Mesh;
00019 public:
00021 SFVertex<VData, EData, FData> *getFromVertex() const;
00023 SFVertex<VData, EData, FData> *getToVertex() const;
00025 const MFFace<FData, VData, EData> &getLeftFaces() const;
00027 const MFFace<FData, VData, EData> &getRightFaces() const;
00028
00029 private:
00031 SFDirectEdge(SFEdgeContent<EData, FData, VData> *const edgeContent);
00033 ~SFDirectEdge();
00034
00036 void addLeftFace(SFFace<FData, VData, EData> *face);
00038 void addRightFace(SFFace<FData, VData, EData> *face);
00039 };
00040
00041 }
00042 }
00043
00044 #include "MESH_SFDirectEdge.inl"
00045
00046 #endif