00001
00002
00004
00005 #ifndef MESHSCENEGRAPHTYPES_H
00006 #define MESHSCENEGRAPHTYPES_H
00007
00008 #include "Platform.h"
00009
00010 #include <vector>
00011 #include <list>
00012 #include <iostream>
00013
00014 namespace X3DTK {
00015 namespace MESH {
00016
00017 class X3DNode;
00018 typedef X3DNode *SFNode;
00019 typedef std::list<SFNode> MFNode;
00020
00021 template<class VData, class EData, class FData> class SFVertex;
00022 template<class EData, class FData, class VData> class SFEdge;
00023 template<class FData, class VData, class EData> class SFFace;
00024
00026
00027 template<class VData, class EData, class FData>
00028 class MFVertex : public std::vector<SFVertex<VData, EData, FData> *>
00029 {
00030 public:
00032 MFVertex();
00034 explicit MFVertex(const std::vector<SFVertex<VData, EData, FData> *> &vector);
00035 };
00036
00038
00039 template<class EData, class FData, class VData>
00040 class MFEdge : public std::vector<SFEdge<EData, FData, VData> *>
00041 {
00042 public:
00044 MFEdge();
00046 explicit MFEdge(const std::vector<SFEdge<EData, FData, VData> *> &vector, bool ccw);
00047 };
00048
00050
00051 template<class FData, class VData, class EData>
00052 class MFFace : public std::vector<SFFace<FData, VData, EData> *>
00053 {
00054 public:
00056 MFFace();
00058 explicit MFFace(const std::vector<SFFace<FData, VData, EData> *> &vector);
00059 };
00060
00061 }
00062 }
00063
00064 #include "MESH_SceneGraphTypes.inl"
00065
00066 #endif