namespace X3DTK { namespace MESH { template TemplateFacesDrawer::TemplateFacesDrawer() : X3DOnePassProcessor() { setGraphTraversal(new DFSGraphTraversal()); setComponentVisitor(new TemplateFacesDrawerCoreVisitor()); } template TemplateFacesDrawer::~TemplateFacesDrawer() { Singleton >::removeInstance(); } template void TemplateFacesDrawer::changeModel() { Singleton >::getInstance()->clearGLNodes(); } template void TemplateFacesDrawer::draw(X3DNode *N, bool selection) { #ifdef TEMPLATE_SPECIALIZATION_SUPPORTED if (VData::template find()) #endif { Singleton >::getInstance()->setDrawingSelected(false); Singleton >::getInstance()->setSelectionMode(selection); Singleton >::getInstance()->init(); traverse(N); Singleton >::getInstance()->finish(); } } template void TemplateFacesDrawer::drawSelected(X3DNode *N) { glDepthFunc(GL_LEQUAL); #ifdef TEMPLATE_SPECIALIZATION_SUPPORTED if (VData::template find()) #endif { Singleton >::getInstance()->setDrawingSelected(true); Singleton >::getInstance()->setSelectionMode(false); Singleton >::getInstance()->initSelected(); traverse(N); } glDepthFunc(GL_LESS); } template TemplateMesh *TemplateFacesDrawer::getMesh(int i) const { return Singleton >::getInstance()->getMesh(i); } template const SFMatrix34f &TemplateFacesDrawer::getMatrix(int i) const { return Singleton >::getInstance()->getMatrix(i); } template SFTemplateFace *TemplateFacesDrawer::getFaceOfMesh(int i, int j) const { return (Singleton >::getInstance()->getMesh(j)->getFaces())[i]; } template void TemplateFacesDrawer::setRenderingMode(FaceMode mode) { Singleton >::getInstance()->setRenderingMode(mode); } template void TemplateFacesDrawer::setSelectedNodes(const MFNode &selectedNodes) { Singleton >::getInstance()->setSelectedNodes(selectedNodes); } } }