1 // Copyright (C) 2010-2012 Gaz Davidson
\r
2 // This file is part of the "Irrlicht Engine".
\r
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
\r
5 #ifndef __C_SMF_MESH_LOADER_H_INCLUDED__
\r
6 #define __C_SMF_MESH_LOADER_H_INCLUDED__
\r
8 #include "IMeshLoader.h"
\r
26 //! Class which can load
\r
27 class CSMFMeshFileLoader : public virtual IMeshLoader
\r
31 CSMFMeshFileLoader(irr::io::IFileSystem* fs, video::IVideoDriver* driver);
\r
33 //! Returns true if the file might be loaded by this class.
\r
34 virtual bool isALoadableFileExtension(const io::path& filename) const _IRR_OVERRIDE_;
\r
36 //! Creates/loads an animated mesh from the file.
\r
37 virtual IAnimatedMesh* createMesh(io::IReadFile* file) _IRR_OVERRIDE_;
\r
40 void loadLimb(io::IReadFile* file, scene::SMesh* mesh, const core::matrix4 &parentTransformation);
\r
43 } // end namespace scene
\r
50 //! reads most types from the given file, moving the file pointer along
\r
52 static void read(io::IReadFile* file, T &out, bool bigEndian=false);
\r
54 //! reads a 3d vector from the file, moving the file pointer along
\r
55 static void read(io::IReadFile* file, core::vector3df &outVector2d, bool bigEndian=false);
\r
57 //! reads a 2d vector from the file, moving the file pointer along
\r
58 static void read(io::IReadFile* file, core::vector2df &outVector2d, bool bigEndian=false);
\r
60 //! reads a null terminated string from the file, moving the file pointer along
\r
61 static void read(io::IReadFile* file, core::stringc &outString, bool bigEndian=false);
\r
66 } // end namespace irr
\r
68 #endif // __C_SMF_MESH_LOADER_H_INCLUDED__
\r