00001 #ifndef X3DTK_X3DMULTIPASSPROCESSOR_H 00002 #define X3DTK_X3DMULTIPASSPROCESSOR_H 00003 00004 #include "X3DProcessor.h" 00005 #include "GraphTraversal.h" 00006 00007 #include <map> 00008 00009 namespace X3DTK { 00010 00016 class X3DMultiPassProcessor : public X3DProcessor 00017 { 00018 typedef std::map<SFString, GraphTraversal *, ltSFString> MFGraphTraversal; 00019 public: 00021 X3DMultiPassProcessor(); 00023 virtual ~X3DMultiPassProcessor() = 0; 00024 00026 virtual void setWalker(const SFString &processor, Walker *walker); 00028 virtual void setComponentVisitor(const SFString &processor, X3DComponentVisitor *component); 00029 00031 GraphTraversal *getGraphTraversalOf(const SFString &processor) const; 00032 00033 protected: 00034 MFGraphTraversal graphTraversalMap; 00035 }; 00036 00037 } 00038 00039 #endif