namespace X3DTK { namespace MESH { template TemplateNormalsInverter::TemplateNormalsInverter() : X3DOnePassProcessor() { setGraphTraversal(new DFSGraphTraversal()); setComponentVisitor(new TemplateNormalsInverterCoreVisitor()); } template TemplateNormalsInverter::~TemplateNormalsInverter() { Singleton >::removeInstance(); } template void TemplateNormalsInverter::invert(Scene *S) { invert(static_cast(S)); S->getProcessHistory().addEntry("MESH::TemplateNormalsInverter"); } template void TemplateNormalsInverter::invert(X3DNode *N) { Singleton >::getInstance()->init(); traverse(N); Singleton >::getInstance()->finish(); } template void TemplateNormalsInverter::setSelectedNodes(const MFNode &selectedNodes) { Singleton >::getInstance()->setSelectedNodes(selectedNodes); } } }