| Irrlicht 3D Engine |

IMeshCache.h
Go to the documentation of this file.

    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_CACHE_H_INCLUDED__
    00006 #define __I_MESH_CACHE_H_INCLUDED__
    00007
    00008 #include "IReferenceCounted.h"
    00009 #include "path.h"
    00010
    00011 namespace irr
    00012 {
    00013
    00014 namespace scene
    00015 {
    00016     class IMesh;
    00017     class IAnimatedMesh;
    00018     class IAnimatedMeshSceneNode;
    00019     class IMeshLoader;
    00020
    00022
    00027     class IMeshCache : public virtual IReferenceCounted
    00028     {
    00029     public:
    00030
    00032         virtual ~IMeshCache() {}
    00033
    00035
    00050         virtual void addMesh(const io::path& name, IAnimatedMesh* mesh) = 0;
    00051
    00053
    00057         virtual void removeMesh(const IMesh* const mesh) = 0;
    00058
    00060
    00065         virtual u32 getMeshCount() const = 0;
    00066
    00068
    00070         virtual s32 getMeshIndex(const IMesh* const mesh) const = 0;
    00071
    00073
    00079         virtual IAnimatedMesh* getMeshByIndex(u32 index) = 0;
    00080
    00082
    00084         _IRR_DEPRECATED_ IAnimatedMesh* getMeshByFilename(const io::path& filename)
    00085         {
    00086             return getMeshByName(filename);
    00087         }
    00088
    00090
    00092         _IRR_DEPRECATED_ const io::path& getMeshFilename(u32 index) const
    00093         {
    00094             return getMeshName(index).getInternalName();
    00095         }
    00096
    00098
    00100         _IRR_DEPRECATED_ const io::path& getMeshFilename(const IMesh* const mesh) const
    00101         {
    00102             return getMeshName(mesh).getInternalName();
    00103         }
    00104
    00106
    00108         _IRR_DEPRECATED_ bool setMeshFilename(u32 index, const io::path& filename)
    00109         {
    00110             return renameMesh(index, filename);
    00111         }
    00112
    00114
    00116         _IRR_DEPRECATED_ bool setMeshFilename(const IMesh* const mesh, const io::path& filename)
    00117         {
    00118             return renameMesh(mesh, filename);
    00119         }
    00120
    00122
    00124         virtual IAnimatedMesh* getMeshByName(const io::path& name) = 0;
    00125
    00127
    00129         virtual const io::SNamedPath& getMeshName(u32 index) const = 0;
    00130
    00132
    00134         virtual const io::SNamedPath& getMeshName(const IMesh* const mesh) const = 0;
    00135
    00137
    00143         virtual bool renameMesh(u32 index, const io::path& name) = 0;
    00144
    00146
    00152         virtual bool renameMesh(const IMesh* const mesh, const io::path& name) = 0;
    00153
    00155
    00157         virtual bool isMeshLoaded(const io::path& name) = 0;
    00158
    00160
    00164         virtual void clear() = 0;
    00165
    00167
    00169         virtual void clearUnusedMeshes() = 0;
    00170     };
    00171
    00172
    00173 } // end namespace scene
    00174 } // end namespace irr
    00175
    00176 #endif
    00177