#include "Cloner.h" #include "X3DAbstractNode.h" #include "DFSGraphTraversal.h" #include "ClonerAbstractVisitor.h" namespace X3DTK { Cloner::Cloner() { setGraphTraversal(new DFSGraphTraversal()); setComponentVisitor(new ClonerAbstractVisitor()); } Cloner::~Cloner() { Singleton::removeInstance(); } SFNode Cloner::clone(SFNode N, bool reset) const { Singleton::getInstance()->initRoot(); if (reset) Singleton::getInstance()->init(); traverse(N); if (reset) Singleton::getInstance()->finish(); return Singleton::getInstance()->getRoot(); } void Cloner::init() { Singleton::getInstance()->init(); } void Cloner::finish() { Singleton::getInstance()->finish(); } }