00001 #ifndef X3DTK_MESH_EDGESDRAWER_H
00002 #define X3DTK_MESH_EDGESDRAWER_H
00003
00004 #include "MESH_EdgesDrawerStateVariables.h"
00005 #include "DFSGraphTraversal.h"
00006 #include "MESH_EdgesDrawerCoreVisitor.h"
00007 #include "MESH_SceneGraphTypes.h"
00008 #include "MESH_Mesh.h"
00009 #include "X3DOnePassProcessor.h"
00010 #include "MESH_MeshData.h"
00011
00012 namespace X3DTK {
00013 namespace MESH {
00014
00024 template<class MData, class VData, class EData, class FData, bool RW>
00025 class TemplateEdgesDrawer : public X3DOnePassProcessor
00026 {
00027 public:
00029 TemplateEdgesDrawer();
00031 virtual ~TemplateEdgesDrawer();
00032
00034 void draw(X3DNode *N, bool selection = false);
00035
00036
00037 inline TemplateVertex<MData, VData, EData, FData, RW> *getVertex(int i) const;
00038
00039 inline const SFMatrix34f &getMatrix(int i) const;
00040 };
00041
00043 typedef TemplateEdgesDrawer<MeshData, VertexData, EdgeData, FaceData, true> EdgesDrawer;
00044
00045 }
00046 }
00047
00048 #include "MESH_EdgesDrawer.inl"
00049
00050 #endif
00051