00001 #ifndef X3DTK_GRAPHTRAVERSAL_H 00002 #define X3DTK_GRAPHTRAVERSAL_H 00003 00004 #include "Singleton.h" 00005 #include "StateVariables.h" 00006 #include "X3DTypes.h" 00007 00008 #include <list> 00009 #include <typeinfo> 00010 #include <iostream> 00011 00012 namespace X3DTK { 00013 00014 class Walker; 00015 class Visitor; 00016 class X3DComponentVisitor; 00017 00024 class GraphTraversal 00025 { 00026 public: 00028 GraphTraversal(); 00030 virtual ~GraphTraversal(); 00031 00033 void setWalker(Walker *walker); 00035 void setComponentVisitor(X3DComponentVisitor *component); 00037 void setAutoDeleteComponents(bool value); 00039 void traverse(SFAbstractNode N) const; 00040 00041 protected: 00043 Visitor *visitor; 00045 Walker *walker; 00046 }; 00047 00048 } 00049 00050 #endif