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_MeshData.h" 00011 00012 namespace X3DTK { 00013 namespace MESH { 00014 00021 template<class MData, class VData, class EData, class FData, bool readOnly> 00022 class NormalsInverter : public X3DOnePassProcessor 00023 { 00024 public: 00026 NormalsInverter(); 00028 virtual ~NormalsInverter(); 00029 00031 void invert(X3DNode *N); 00033 void setSelectedNodes(const MFNode &selectedNodes); 00034 00035 protected: 00036 NormalsInverterStateVariables<MData, VData, EData, FData, readOnly>* stateVariables; 00037 }; 00038 00040 typedef NormalsInverter<MeshData, VertexData, EdgeData, FaceData, true> DefNormalsInverter; 00041 00042 } 00043 } 00044 00045 #include "MESH_NormalsInverter.inl" 00046 00047 #endif 00048