00001 #ifndef X3DTK_WALKONFUNCTION_H 00002 #define X3DTK_WALKONFUNCTION_H 00003 00004 #include "X3DFunction.h" 00005 #include "X3DTypes.h" 00006 00007 namespace X3DTK { 00008 00009 class X3DComponentVisitor; 00010 00012 typedef bool (X3DComponentVisitor::* ptrToWalkOnFunction)(SFAbstractNode, SFAbstractNode) const; 00013 00019 class WalkOnFunction : public X3DFunction 00020 { 00021 public: 00023 WalkOnFunction(const ptrToWalkOnFunction walkon, const X3DComponentVisitor *component); 00025 ~WalkOnFunction(); 00026 00028 inline bool walkOn(SFAbstractNode N, SFAbstractNode child) const {return (component_->*ptr2walkon_)(N, child);}; 00029 00030 private: 00031 const ptrToWalkOnFunction ptr2walkon_; 00032 const X3DComponentVisitor *component_; 00033 }; 00034 00035 } 00036 00037 #endif