Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members  

NodeVisitingProxy.h

Go to the documentation of this file.
00001 
00002 //                            NodeVisitingProxy.h                             //
00004 
00005 #ifndef NODEVISITINGPROXY_H
00006 #define NODEVISITINGPROXY_H
00007 
00008 #include "X3DNodeProxy.h"
00009 
00010 #include <list>
00011 
00012 namespace X3DTK {
00013 
00014 class Type;
00015 class X3DComponentVisitor;
00016 
00018 
00019 class NodeVisitingProxy : public X3DNodeProxy
00020 {
00021 public:  
00023   NodeVisitingProxy();
00025   virtual ~NodeVisitingProxy();
00026   
00028   void setComponentVisitor(X3DComponentVisitor *component);
00030   void enter(SFNode N) const;
00032   bool walkOn(SFNode N, SFNode child = 0) const;
00034   void leave(SFNode N) const;
00036   void reset();
00037   
00038   friend NodeVisitingProxy *joinNodeVisitingProxies(NodeVisitingProxy *N0, NodeVisitingProxy *N1);
00039   
00040 private:  
00042   virtual void addType(const Type *type);
00044   EnterFunction *getEnterFunctionOf(const Type *type) const;
00045   WalkOnFunction *getWalkOnFunctionOf(const Type *type) const;
00046   LeaveFunction *getLeaveFunctionOf(const Type *type) const;
00047   
00048   //Dictionary of all the creation functions used.
00049   VisitingArray visitingArray_;
00050   std::list<X3DComponentVisitor *> componentList_;
00051 };
00052 
00053 }
00054 
00055 #endif

Generated on Wed May 14 10:38:10 2003 for X3DToolKit by doxygen1.3