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_Shape.h" 00008 #include "MESH_Transform.h" 00009 00010 #include <algorithm> 00011 #include <GL/gl.h> 00012 00013 namespace X3DTK { 00014 namespace MESH { 00015 00022 template<class MData, class VData, class EData, class FData, bool readOnly> 00023 class FacesDrawerCoreVisitor : public CoreVisitor 00024 { 00025 public: 00027 FacesDrawerCoreVisitor(); 00028 00030 virtual void enterMesh(Mesh<MData, VData, EData, FData, readOnly> *M) const; 00032 virtual bool walkOnShape(Shape *S, SFAbstractNode child) const; 00034 virtual void enterTransform(Transform *T) const; 00036 virtual void leaveTransform(Transform *T) const; 00037 00038 protected: 00039 FacesDrawerStateVariables<MData, VData, EData, FData, readOnly> *stateVariables; 00040 }; 00041 00042 } 00043 } 00044 00045 #include "MESH_FacesDrawerCoreVisitor.inl" 00046 00047 #endif