00001 #ifndef X3DTK_MESH_VERTICESDRAWER_H
00002 #define X3DTK_MESH_VERTICESDRAWER_H
00003
00004 #include "MESH_VerticesDrawerStateVariables.h"
00005 #include "DFSGraphTraversal.h"
00006 #include "MESH_VerticesDrawerCoreVisitor.h"
00007 #include "X3DOnePassProcessor.h"
00008 #include "MESH_SceneGraphTypes.h"
00009 #include "MESH_MeshData.h"
00010
00011 namespace X3DTK {
00012 namespace MESH {
00013
00020 template<class MData, class VData, class EData, class FData, bool RW>
00021 class TemplateVerticesDrawer : public X3DOnePassProcessor
00022 {
00023 public:
00025 TemplateVerticesDrawer();
00027 virtual ~TemplateVerticesDrawer();
00028
00030 void draw(X3DNode *N, bool selection = false);
00031
00032 inline TemplateMesh<MData, VData, EData, FData, RW> *getMesh(int i) const;
00033
00034 inline const SFMatrix34f &getMatrix(int i) const;
00035
00036 protected:
00037 TemplateVerticesDrawerStateVariables<MData, VData, EData, FData, RW>* stateVariables;
00038 };
00039
00041 typedef TemplateVerticesDrawer<MeshData, VertexData, EdgeData, FaceData, true> VerticesDrawer;
00042
00043 }
00044 }
00045
00046 #include "MESH_VerticesDrawer.inl"
00047
00048 #endif
00049