00001 #include "engineWalker.h"
00002 #include <animal/engine/engine.h>
00003
00004 namespace X3DTK {
00005 namespace X3D {
00006
00007 EngineWalker::EngineWalker()
00008 {
00009 defineWalkingFunction(&EngineWalker::walkEngineNode);
00010 }
00011
00012 EngineWalker::~EngineWalker()
00013 {
00014 }
00015
00016 void EngineWalker::walkEngineNode(animal::Engine * E)
00017 {
00018 if ( X3D::X3DNode * N = dynamic_cast< X3D::X3DNode *>(E))
00019 {
00020 visitor->enter(N);
00021
00022
00023 MFAbstractNode childrenList = N->getChildList();
00024 for(MFAbstractNode::iterator it = childrenList.begin(); it != childrenList.end();++it)
00025 if (( (*it) != 0) && (visitor->walkOn(N, (*it))) )
00026 walker->walk((*it));
00027
00028 visitor->leave(N);
00029 }
00030 }
00031
00032 }
00033 }