Main Page | Modules | Namespace List | Class Hierarchy | Compound List | File List | Namespace Members | Compound Members | File Members | Related Pages

GraphTraversal.h

Go to the documentation of this file.
00001 #ifndef X3DTK_GRAPHTRAVERSAL_H
00002 #define X3DTK_GRAPHTRAVERSAL_H
00003 
00004 #include "StateVariables.h"
00005 #include "X3DTypes.h"
00006 
00007 #include <list>
00008 #include <typeinfo>
00009 #include <iostream>
00010 
00011 namespace X3DTK {
00012 
00013 class Walker;
00014 class Visitor; 
00015 class X3DComponentVisitor;
00016 
00025 class GraphTraversal
00026 {
00027 public:
00029   GraphTraversal();
00031   virtual ~GraphTraversal();
00032   
00034   void setWalker(Walker *walker);
00036   void setComponentVisitor(X3DComponentVisitor *component);
00038   void setAutoDeleteComponents(bool value);
00040   void traverse(SFAbstractNode N) const;
00041   
00043   template <class S>
00044   static S *getInstanceOf();
00045   
00047   template <class S>
00048   static void removeInstanceOf();
00049     
00050 protected:
00052   Visitor *visitor;     
00054   Walker *walker;
00055 
00056 private:
00057   static std::list<StateVariables *> _stateVariablesList;  
00058 };
00059 
00060 }
00061 
00062 #include "GraphTraversal.inl"
00063 
00064 #endif

Generated on Wed Apr 7 12:15:20 2004 for X3DToolKit by doxygen 1.3.3