00001 #include "BboxUpdater.h" 00002 #include "DefaultDFS.h" 00003 #include "BboxUpdaterCoreVisitor.h" 00004 #include "BboxUpdaterGeometry3DVisitor.h" 00005 #include "BboxUpdaterGroupingVisitor.h" 00006 #include "BboxUpdaterRenderingVisitor.h" 00007 #include "BboxUpdaterShapeVisitor.h" 00008 00009 using namespace X3DTK; 00010 00011 BboxUpdater::BboxUpdater() 00012 : X3DBboxUpdater() 00013 { 00014 globalVariables = GVManager::getInstanceOf<BboxUpdaterGlobalVariables>(); 00015 00016 dfs = new DefaultDFS(); 00017 dfs->setComponentVisitor(new BboxUpdaterCoreVisitor()); 00018 dfs->setComponentVisitor(new BboxUpdaterGeometry3DVisitor()); 00019 dfs->setComponentVisitor(new BboxUpdaterGroupingVisitor()); 00020 dfs->setComponentVisitor(new BboxUpdaterRenderingVisitor()); 00021 dfs->setComponentVisitor(new BboxUpdaterShapeVisitor()); 00022 } 00023 00024 BboxUpdater::~BboxUpdater() 00025 { 00026 delete dfs; 00027 } 00028 00029 void BboxUpdater::setComponentVisitor(X3DComponentVisitor *component) 00030 { 00031 dfs->setComponentVisitor(component); 00032 } 00033 00034 void BboxUpdater::update(X3DNode *N, bool staticProcessing) 00035 { 00036 globalVariables->setStaticProcessing(staticProcessing); 00037 00038 dfs->traverse(N); 00039 globalVariables->finish(); 00040 }