00001 00002 // X3DMultiPassProcessor.h // 00004 00005 #ifndef X3DMULTIPASSPROCESSOR_H 00006 #define X3DMULTIPASSPROCESSOR_H 00007 00008 #include "X3DProcessor.h" 00009 #include "GraphTraversal.h" 00010 00011 #include <map> 00012 00013 namespace X3DTK { 00014 00016 00017 class X3DMultiPassProcessor : public X3DProcessor 00018 { 00019 typedef std::map<SFString, GraphTraversal *, ltSFString> MGraphTraversal; 00020 public: 00022 X3DMultiPassProcessor(); 00024 virtual ~X3DMultiPassProcessor() = 0; 00025 00027 virtual void setComponentWalker(const SFString &processor, X3DComponentWalker *component); 00029 virtual void setComponentVisitor(const SFString &processor, X3DComponentVisitor *component); 00030 00032 GraphTraversal *getGraphTraversalOf(const SFString &processor) const; 00033 00034 protected: 00035 MGraphTraversal graphTraversalMap; 00036 }; 00037 00038 } 00039 00040 #endif