irrlicht/include/IMeshTextureLoader.h

66 lines
2.1 KiB
C++

// This file is part of the "Irrlicht Engine".
// For conditions of distribution and use, see copyright notice in irrlicht.h
#ifndef IRR_I_MESH_TEXTURE_LOADER_H_INCLUDED
#define IRR_I_MESH_TEXTURE_LOADER_H_INCLUDED
#include "path.h"
#include "IReferenceCounted.h"
namespace irr
{
namespace video
{
class ITexture;
}
namespace io
{
class IReadFile;
}
namespace scene
{
//! Finding and loading textures inside meshloaders.
/** A texture loader can search for a texture in several paths.
For example relative to a given texture-path, relative to the current
working directory or relative to a mesh- and/or material-file.
*/
class IMeshTextureLoader : public virtual IReferenceCounted
{
public:
//! Destructor
virtual ~IMeshTextureLoader() {}
//! Set a custom texture path.
/** This is the first path the texture-loader should search. */
virtual void setTexturePath(const irr::io::path& path) = 0;
//! Get the current custom texture path.
virtual const irr::io::path& getTexturePath() const = 0;
//! Get the texture by searching for it in all paths that makes sense for the given textureName.
/** Usually you do not have to use this method, it is used internally by IMeshLoader's.
\param textureName Texturename as used in the mesh-format
\return Pointer to the texture. Returns 0 if loading failed.*/
virtual irr::video::ITexture* getTexture(const irr::io::path& textureName) = 0;
//! Meshloaders will search paths relative to the meshFile.
/** Usually you do not have to use this method, it is used internally by IMeshLoader's.
Any values you set here will likely be overwritten internally. */
virtual void setMeshFile(const irr::io::IReadFile* meshFile) = 0;
//! Meshloaders will try to look relative to the path of the materialFile
/** Usually you do not have to use this method, it is used internally by IMeshLoader's.
Any values you set here will likely be overwritten internally. */
virtual void setMaterialFile(const irr::io::IReadFile* materialFile) = 0;
};
} // end namespace scene
} // end namespace irr
#endif