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); 00036 void setComponentVisitor(X3DComponentVisitor *component); 00039 void setAutoDeleteComponents(bool value); 00042 void traverse(SFNode N) const; 00043 00044 protected: 00046 Visitor *visitor; 00048 Walker *walker; 00049 }; 00050 00051 } 00052 00053 #endif