Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials

IMeshCache.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2010 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 IAnimatedMesh* const mesh) = 0;
00058 
00060 
00064                 virtual void removeMesh(const IMesh* const mesh) = 0;
00065 
00067 
00072                 virtual u32 getMeshCount() const = 0;
00073 
00075 
00077                 virtual s32 getMeshIndex(const IAnimatedMesh* const mesh) const = 0;
00078 
00080 
00082                 virtual s32 getMeshIndex(const IMesh* const mesh) const = 0;
00083 
00085 
00091                 virtual IAnimatedMesh* getMeshByIndex(u32 index) = 0;
00092 
00094 
00095                 _IRR_DEPRECATED_ IAnimatedMesh* getMeshByFilename(const io::path& filename)
00096                 {
00097                         return getMeshByName(filename);
00098                 }
00099 
00101 
00102                 _IRR_DEPRECATED_ const io::path& getMeshFilename(u32 index) const
00103                 {
00104                         return getMeshName(index).getInternalName();
00105                 }
00106 
00108 
00109                 _IRR_DEPRECATED_ const io::path& getMeshFilename(const IAnimatedMesh* const mesh) const
00110                 {
00111                         return getMeshName(mesh).getInternalName();
00112                 }
00113 
00115 
00116                 _IRR_DEPRECATED_ const io::path& getMeshFilename(const IMesh* const mesh) const
00117                 {
00118                         return getMeshName(mesh).getInternalName();
00119                 }
00120 
00122 
00123                 _IRR_DEPRECATED_ bool setMeshFilename(u32 index, const io::path& filename)
00124                 {
00125                         return renameMesh(index, filename);
00126                 }
00127 
00129 
00130                 _IRR_DEPRECATED_ bool setMeshFilename(const IAnimatedMesh* const mesh, const io::path& filename)
00131                 {
00132                         return renameMesh(mesh, filename);
00133                 }
00134 
00136 
00137                 _IRR_DEPRECATED_ bool setMeshFilename(const IMesh* const mesh, const io::path& filename)
00138                 {
00139                         return renameMesh(mesh, filename);
00140                 }
00141 
00143 
00145                 virtual IAnimatedMesh* getMeshByName(const io::path& name) = 0;
00146 
00148 
00150                 virtual const io::SNamedPath& getMeshName(u32 index) const = 0;
00151 
00153 
00155                 virtual const io::SNamedPath& getMeshName(const IAnimatedMesh* const mesh) const = 0;
00156 
00158 
00160                 virtual const io::SNamedPath& getMeshName(const IMesh* const mesh) const = 0;
00161 
00163 
00169                 virtual bool renameMesh(u32 index, const io::path& name) = 0;
00170 
00172 
00178                 virtual bool renameMesh(const IAnimatedMesh* const mesh, const io::path& name) = 0;
00179 
00181 
00187                 virtual bool renameMesh(const IMesh* const mesh, const io::path& name) = 0;
00188 
00190 
00192                 virtual bool isMeshLoaded(const io::path& name) = 0;
00193 
00195 
00199                 virtual void clear() = 0;
00200 
00202 
00204                 virtual void clearUnusedMeshes() = 0;
00205         };
00206 
00207 
00208 } // end namespace scene
00209 } // end namespace irr
00210 
00211 #endif
00212 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Sun Oct 24 12:41:57 2010 by Doxygen (1.6.2)