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 X3DComponentWalker;
00016 class X3DComponentVisitor;
00017 
00026 class GraphTraversal
00027 {
00028 public:
00030   GraphTraversal();
00032   virtual ~GraphTraversal();
00033   
00035   void setComponentWalker(X3DComponentWalker *component);
00037   void setComponentVisitor(X3DComponentVisitor *component);
00039   void setAutoDeleteComponents(bool value);
00041   void traverse(SFAbstractNode N) const;
00042   
00044   friend GraphTraversal *joinGraphTraversals(GraphTraversal *A1, GraphTraversal *A2);
00046   friend GraphTraversal *mergeGraphTraversals(GraphTraversal *A1, GraphTraversal *A2);
00047   
00049   template <class S>
00050   static S *getInstanceOf();
00051   
00053   template <class S>
00054   static void removeInstanceOf();
00055     
00056 protected:
00058   Visitor *visitor;     
00060   Walker *walker;
00061 
00062 private:
00063   static std::list<StateVariables *> _stateVariablesList;  
00064 };
00065 
00066 }
00067 
00068 #include "GraphTraversal.inl"
00069 
00070 #endif

Generated on Tue Mar 2 14:08:50 2004 for X3DToolKit by doxygen 1.3.3