00001 #ifndef X3DTK_RECORDER_H 00002 #define X3DTK_RECORDER_H 00003 00004 #include "BaseRecorder.h" 00005 #include "EnterFunction.h" 00006 #include "WalkOnFunction.h" 00007 #include "LeaveFunction.h" 00008 #include "CreationFunction.h" 00009 #include "NodeFactory.h" 00010 #include "X3DAbstractNode.h" 00011 #include "SFSceneGraph.h" 00012 00013 #include <utility> 00014 00015 namespace X3DTK { 00016 00017 struct StringType 00018 { 00019 SFString type; 00020 SFString component; 00021 SFString sceneGraph; 00022 SFString encodedName; 00023 }; 00024 00025 template<class T> 00026 class Recorder : public BaseRecorder 00027 { 00028 public: 00029 static std::pair<StringType, EnterFunction *> getEnterFunction(void (*ptrF)(T *)); 00030 static std::pair<StringType, WalkOnFunction *> getWalkOnFunction(bool (*ptrF)(T *, SFAbstractNode)); 00031 static std::pair<StringType, LeaveFunction *> getLeaveFunction(void (*ptrF)(T *)); 00032 static std::pair<StringType, CreationFunction *> getCreationFunction(); 00033 }; 00034 00035 } 00036 00037 #include "Recorder.inl" 00038 00039 #endif