00001 #ifndef X3DTK_MESH_NORMALSINVERTERCOREVISITOR_H 00002 #define X3DTK_MESH_NORMALSINVERTERCOREVISITOR_H 00003 00004 #include "MESH_NormalsInverterStateVariables.h" 00005 #include "MESH_CoreVisitor.h" 00006 #include "MESH_Mesh.h" 00007 #include "MESH_Shape.h" 00008 #include "MESH_SceneGraphTypes.h" 00009 00010 #include <map> 00011 00012 namespace X3DTK { 00013 namespace MESH { 00014 00021 template<class MData, class VData, class EData, class FData, bool readOnly> 00022 class NormalsInverterCoreVisitor : public CoreVisitor 00023 { 00024 public: 00026 NormalsInverterCoreVisitor(); 00027 00029 virtual void enterMesh(Mesh<MData, VData, EData, FData, readOnly> *M) const; 00031 virtual bool walkOnShape(Shape *S, SFAbstractNode child) const; 00032 00033 protected: 00034 NormalsInverterStateVariables<MData, VData, EData, FData, readOnly> *stateVariables; 00035 }; 00036 00037 } 00038 } 00039 00040 #include "MESH_NormalsInverterCoreVisitor.inl" 00041 00042 #endif