namespace X3DTK { namespace MESH { template TemplateMeshSimplifierStateVariables::TemplateMeshSimplifierStateVariables() : StateVariables(), _mesh(0) { } template void TemplateMeshSimplifierStateVariables::init() { _mesh = new TemplateMesh(); _mesh->setChild(new TemplateVertex()); #ifdef TEMPLATE_SPECIALIZATION_SUPPORTED if (MData::template find()) { _mesh->template ogetData().setNormal(true); _mesh->template ogetData().setNormalPerVertex(true); } if (MData::template find()) { _mesh->template ogetData().setColor(true); _mesh->template ogetData().setColorPerVertex(true); _mesh->template ogetData().setRGBA(true); } #else _mesh->data().setNormal(true); _mesh->data().setNormalPerVertex(true); _mesh->data().setColor(true); _mesh->data().setColorPerVertex(true); _mesh->data().setRGBA(true); #endif } template void TemplateMeshSimplifierStateVariables::finish() { _nodeList.clear(); } template void TemplateMeshSimplifierStateVariables::addNode(SFNode N) { _nodeList.push_back(N); } template bool TemplateMeshSimplifierStateVariables::getNode(SFNode N) const { std::list::const_iterator it = std::find(_nodeList.begin(), _nodeList.end(), N); return (it != _nodeList.end()); } template void TemplateMeshSimplifierStateVariables::addCoupleVertex(SFTemplateVertex *A, SFTemplateVertex *B) { _vertexMap[A] = B; } template SFTemplateVertex *TemplateMeshSimplifierStateVariables::getNode(SFTemplateVertex *V) const { typename std::map *, SFTemplateVertex *>::const_iterator it = _vertexMap.find(V); if (it != _vertexMap.end()) return ((*it).second); return 0; } } }