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_MESH_LOADER_H_INCLUDED__ 00006 #define __I_MESH_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 IAnimatedMesh; 00020 00022 00026 class IMeshLoader : public virtual IReferenceCounted 00027 { 00028 public: 00029 00031 virtual ~IMeshLoader() {} 00032 00034 00038 virtual bool isALoadableFileExtension(const io::path& filename) const = 0; 00039 00041 00045 virtual IAnimatedMesh* createMesh(io::IReadFile* file) = 0; 00046 }; 00047 00048 00049 } // end namespace scene 00050 } // end namespace irr 00051 00052 #endif 00053