00001 #ifndef X3DMFNODERECORDER_H 00002 #define X3DMFNODERECORDER_H 00003 00004 namespace X3DTK { 00005 00006 class X3DAbstractNode; 00007 00008 class X3DMFNodeRecorder 00009 { 00010 public: 00011 virtual void record(X3DAbstractNode *N) const = 0; 00012 virtual ~X3DMFNodeRecorder() {}; 00013 }; 00014 00015 template<class T, class V> 00016 class MFNodeRecorder : public X3DMFNodeRecorder 00017 { 00018 public: 00019 MFNodeRecorder(const SFString &name, MFNode T:: *nodes); 00020 00021 void record(X3DAbstractNode *N) const; 00022 00023 private: 00024 SFString _name; 00025 MFNode T:: *_nodes; 00026 }; 00027 00028 } 00029 00030 #include "X3DMFNodeRecorder.inl" 00031 00032 #endif