00001 // Copyright (C) 2010-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_LOADER_H_INCLUDED__ 00006 #define __I_SCENE_LOADER_H_INCLUDED__ 00007 00008 #include "IReferenceCounted.h" 00009 #include "path.h" 00010 00011 namespace irr 00012 { 00013 namespace io 00014 { 00015 class IReadFile; 00016 } // end namespace io 00017 namespace scene 00018 { 00019 class ISceneNode; 00020 class ISceneUserDataSerializer; 00021 00023 00026 class ISceneLoader : public virtual IReferenceCounted 00027 { 00028 public: 00029 00031 00035 virtual bool isALoadableFileExtension(const io::path& filename) const = 0; 00036 00038 00041 virtual bool isALoadableFileFormat(io::IReadFile* file) const = 0; 00042 00044 00052 virtual bool loadScene(io::IReadFile* file, ISceneUserDataSerializer* userDataSerializer=0, 00053 ISceneNode* rootNode=0) = 0; 00054 00055 }; 00056 00057 00058 } // end namespace scene 00059 } // end namespace irr 00060 00061 #endif 00062