00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt 00002 // This file is part of the "Irrlicht Engine". 00003 // For conditions of distribution and use, see copyright notice in irrlicht.h 00004 00005 #ifndef __I_SCENE_USER_DATA_SERIALIZER_H_INCLUDED__ 00006 #define __I_SCENE_USER_DATA_SERIALIZER_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 00010 namespace irr 00011 { 00012 namespace io 00013 { 00014 class IAttributes; 00015 } // end namespace io 00016 namespace scene 00017 { 00018 class ISceneNode; 00019 00021 00024 class ISceneUserDataSerializer 00025 { 00026 public: 00027 00028 virtual ~ISceneUserDataSerializer() {} 00029 00031 virtual void OnCreateNode(ISceneNode* node) = 0; 00032 00034 00036 virtual void OnReadUserData(ISceneNode* forSceneNode, io::IAttributes* userData) = 0; 00037 00039 00044 virtual io::IAttributes* createUserData(ISceneNode* forSceneNode) = 0; 00045 }; 00046 00047 } // end namespace scene 00048 } // end namespace irr 00049 00050 #endif 00051