namespace X3DTK { template SFNodeRecorder::SFNodeRecorder(const SFString &name, V *T:: *node) : X3DSFNodeRecorder(), _name(name), _node(node) { } template void SFNodeRecorder::record(X3DAbstractNode *N) const { SFType *type = N->getType(); static_cast(N)->*_node = 0; for (std::vector >::iterator it = type->nodeMap().begin(); it != type->nodeMap().end(); ++it) { if ((*it).first == _name) return; } type->nodeMap().push_back(std::pair(_name, new SFNodeFunctor(_node))); } }