00001 #ifndef X3DTK_MESH_NORMALSINVERTER_H 00002 #define X3DTK_MESH_NORMALSINVERTER_H 00003 00004 #include "MESH_NormalsInverterStateVariables.h" 00005 #include "X3DOnePassProcessor.h" 00006 #include "MESH_SceneGraphTypes.h" 00007 #include "DFSGraphTraversal.h" 00008 #include "MESH_NormalsInverterCoreVisitor.h" 00009 #include "MESH_Mesh.h" 00010 #include "MESH_Scene.h" 00011 #include "MESH_MeshData.h" 00012 00013 namespace X3DTK { 00014 namespace MESH { 00015 00024 template<class MData, class VData, class EData, class FData, bool RW> 00025 class TemplateNormalsInverter : public X3DOnePassProcessor 00026 { 00027 public: 00029 TemplateNormalsInverter(); 00031 virtual ~TemplateNormalsInverter(); 00032 00034 void invert(Scene *S); 00036 void invert(X3DNode *N); 00038 void setSelectedNodes(const MFNode &selectedNodes); 00039 }; 00040 00042 typedef TemplateNormalsInverter<MeshData, VertexData, EdgeData, FaceData, true> NormalsInverter; 00043 00044 } 00045 } 00046 00047 #include "MESH_NormalsInverter.inl" 00048 00049 #endif 00050