00001 00002 // X3DTTAlgorithm.h // 00004 00005 #ifndef X3DTTALGORITHM_H 00006 #define X3DTTALGORITHM_H 00007 00008 #include "X3DTypes.h" 00009 00010 namespace X3DTK { 00011 00012 class NodeWalkingProxy; 00013 class NodeVisitingProxy; 00014 class X3DComponentWalker; 00015 class X3DComponentVisitor; 00016 00018 00019 class X3DTTAlgorithm 00020 { 00021 public: 00023 X3DTTAlgorithm(); 00025 virtual ~X3DTTAlgorithm(); 00026 00028 void setComponentWalker(X3DComponentWalker *component); 00030 void setComponentVisitor(X3DComponentVisitor *component); 00032 void setAutoDeleteComponents(bool value); 00034 void traverse(SFNode N) const; 00035 00036 protected: 00038 NodeVisitingProxy *nvp; 00040 NodeWalkingProxy *nwp; 00041 }; 00042 00043 } 00044 00045 #endif