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