00001 00002 00003 00005 00006 00011 00016 00021 // X3DTTAlgorithm.h // 00023 00024 #ifndef X3DTTALGORITHM_H 00025 #define X3DTTALGORITHM_H 00026 00027 #include "X3DTypes.h" 00028 00029 namespace X3DTK { 00030 00031 class NodeWalkingProxy; 00032 class NodeVisitingProxy; 00033 class X3DComponentWalker; 00034 class X3DComponentVisitor; 00035 00037 00038 class X3DTTAlgorithm 00039 { 00040 public: 00042 X3DTTAlgorithm(); 00044 virtual ~X3DTTAlgorithm(); 00045 00047 void setComponentWalker(X3DComponentWalker *component); 00049 void setComponentVisitor(X3DComponentVisitor *component); 00051 void setAutoDeleteComponents(bool value); 00053 void traverse(SFAbstractNode N) const; 00054 00056 friend X3DTTAlgorithm *joinTTAlgorithms(X3DTTAlgorithm *A1, X3DTTAlgorithm *A2); 00058 friend X3DTTAlgorithm *mergeTTAlgorithms(X3DTTAlgorithm *A1, X3DTTAlgorithm *A2); 00059 00060 protected: 00062 NodeVisitingProxy *nvp; 00064 NodeWalkingProxy *nwp; 00065 }; 00066 00067 } 00068 00069 #endif