namespace X3DTK { namespace MESH { template TemplateEdgesDrawerStateVariables::TemplateEdgesDrawerStateVariables() : StateVariables(), _selectionMode(false) { } template void TemplateEdgesDrawerStateVariables::init() { _matrixStack.push_front(SFMatrix34f::identity); _matrixVector.clear(); _vertexVector.clear(); _coupleList.clear(); } template void TemplateEdgesDrawerStateVariables::finish() { _matrixStack.pop_front(); if (_matrixStack.size() != 0) { cx3d << "TemplateEdgesDrawerStateVariables::finish: Non empty matrix stack at the end of TemplateEdgesDrawer traversal" << std::endl; _matrixStack.clear(); } } template void TemplateEdgesDrawerStateVariables::pushTransform(const SFMatrix34f &matrix) { _matrixStack.push_front(_matrixStack.front()*matrix); } template SFMatrix34f TemplateEdgesDrawerStateVariables::getCurrentTransform() { return _matrixStack.front(); } template void TemplateEdgesDrawerStateVariables::popTransform() { _matrixStack.pop_front(); } template void TemplateEdgesDrawerStateVariables::addCouple(X3DNode *N, const SFMatrix34f &matrix) { _coupleList.push_back(std::pair(N, matrix)); } template bool TemplateEdgesDrawerStateVariables::getCouple(X3DNode *N, const SFMatrix34f &matrix) const { return (std::find(_coupleList.begin(), _coupleList.end(), std::pair(N, matrix)) != _coupleList.end()); } template int TemplateEdgesDrawerStateVariables::getCurrentMeshId() { return _matrixVector.size() - 1; } template void TemplateEdgesDrawerStateVariables::storeVertex(TemplateVertex *vertex) { _matrixVector.push_back(_matrixStack.front()); _vertexVector.push_back(vertex); } template TemplateVertex *TemplateEdgesDrawerStateVariables::getVertex(int i) const { return _vertexVector[i]; } template const SFMatrix34f &TemplateEdgesDrawerStateVariables::getMatrix(int i) const { return _matrixVector[i]; } template void TemplateEdgesDrawerStateVariables::setSelectionMode(bool selectionMode) { _selectionMode = selectionMode; } template bool TemplateEdgesDrawerStateVariables::getSelectionMode() const { return _selectionMode; } } }