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_Scene.h" 00011 #include "MESH_MeshData.h" 00012 00013 namespace X3DTK { 00014 namespace MESH { 00015 00022 template<class MData, class VData, class EData, class FData, bool RW> 00023 class TemplateNormalsFlipper : public X3DOnePassProcessor 00024 { 00025 public: 00027 TemplateNormalsFlipper(); 00029 virtual ~TemplateNormalsFlipper(); 00030 00032 void flip(Scene *S); 00034 void flip(X3DNode *N); 00036 void setSelectedNodes(const MFNode &selectedNodes); 00037 00038 protected: 00039 TemplateNormalsFlipperStateVariables<MData, VData, EData, FData, RW>* stateVariables; 00040 }; 00041 00043 typedef TemplateNormalsFlipper<MeshData, VertexData, EdgeData, FaceData, true> NormalsFlipper; 00044 00045 } 00046 } 00047 00048 #include "MESH_NormalsFlipper.inl" 00049 00050 #endif 00051