00001 #ifndef X3DTK_MESH_NORMALSFLIPPER_H 00002 #define X3DTK_MESH_NORMALSFLIPPER_H 00003 00004 #include "MESH_NormalsFlipperStateVariables.h" 00005 #include "X3DOnePassProcessor.h" 00006 #include "MESH_SceneGraphTypes.h" 00007 #include "DFSGraphTraversal.h" 00008 #include "MESH_NormalsFlipperCoreVisitor.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 NormalsFlipper : public X3DOnePassProcessor 00023 { 00024 public: 00026 NormalsFlipper(); 00028 virtual ~NormalsFlipper(); 00029 00031 void flip(X3DNode *N); 00033 void setSelectedNodes(const MFNode &selectedNodes); 00034 00035 protected: 00036 NormalsFlipperStateVariables<MData, VData, EData, FData, readOnly>* stateVariables; 00037 }; 00038 00040 typedef NormalsFlipper<MeshData, VertexData, EdgeData, FaceData, true> DefNormalsFlipper; 00041 00042 } 00043 } 00044 00045 #include "MESH_NormalsFlipper.inl" 00046 00047 #endif 00048