00001 #ifndef X3DTK_MESH_FACESDRAWERCOREVISITOR_H 00002 #define X3DTK_MESH_FACESDRAWERCOREVISITOR_H 00003 00004 #include "MESH_FacesDrawerStateVariables.h" 00005 #include "MESH_CoreVisitor.h" 00006 #include "MESH_Mesh.h" 00007 #include "MESH_Scene.h" 00008 #include "MESH_Shape.h" 00009 #include "X3D_Shape.h" 00010 #include "MESH_Transform.h" 00011 00012 #include <iostream> 00013 #include <algorithm> 00014 #include <GL/gl.h> 00015 00016 namespace X3DTK { 00017 namespace MESH { 00018 00025 template<class MData, class VData, class EData, class FData, bool RW> 00026 class TemplateFacesDrawerCoreVisitor : public CoreVisitor 00027 { 00028 public: 00030 TemplateFacesDrawerCoreVisitor(); 00031 00033 static void enterScene(Scene *S); 00035 static void enterMesh(TemplateMesh<MData, VData, EData, FData, RW> *M); 00037 static void enterShape(Shape *S); 00039 static bool walkOnShape(Shape *S, SFNode child); 00041 static void enterTransform(Transform *T); 00043 static void leaveTransform(Transform *T); 00044 }; 00045 00046 } 00047 } 00048 00049 #include "MESH_FacesDrawerCoreVisitor.inl" 00050 00051 #endif