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