Loading...
Searching...
No Matches
irr::scene::IMeshCache Class Referenceabstract

The mesh cache stores already loaded meshes and provides an interface to them. More...

`#include <IMeshCache.h>`

Inheritance diagram for irr::scene::IMeshCache:

## Public Member Functions

virtual | ~IMeshCache ()
| Destructor.
virtual void | addMesh (const io::path &name, IAnimatedMesh *mesh)=0
| Adds a mesh to the internal list of loaded meshes.
virtual void | clear ()=0
| Clears the whole mesh cache, removing all meshes.
virtual void | clearUnusedMeshes ()=0
| Clears all meshes that are held in the mesh cache but not used anywhere else.
_IRR_DEPRECATED_ IAnimatedMesh * | getMeshByFilename (const io::path &filename)
| Returns a mesh based on its name (often a filename).
virtual IAnimatedMesh * | getMeshByIndex (u32 index)=0
| Returns a mesh based on its index number.
virtual IAnimatedMesh * | getMeshByName (const io::path &name)=0
| Returns a mesh based on its name.
virtual u32 | getMeshCount () const =0
| Returns amount of loaded meshes in the cache.
_IRR_DEPRECATED_ const io::path & | getMeshFilename (const IMesh *const mesh) const
| Get the name of a loaded mesh, if there is any. (Name is often identical to the filename).
_IRR_DEPRECATED_ const io::path & | getMeshFilename (u32 index) const
| Get the name of a loaded mesh, based on its index. (Name is often identical to the filename).
virtual s32 | getMeshIndex (const IMesh *const mesh) const =0
| Returns current index number of the mesh or -1 when not found.
virtual const io::SNamedPath & | getMeshName (const IMesh *const mesh) const =0
| Get the name of the loaded mesh if there is any.
virtual const io::SNamedPath & | getMeshName (u32 index) const =0
| Get the name of a loaded mesh, based on its index.
virtual bool | isMeshLoaded (const io::path &name)=0
| Check if a mesh was already loaded.
virtual void | removeMesh (const IMesh *const mesh)=0
| Removes the mesh from the cache.
virtual bool | renameMesh (const IMesh *const mesh, const io::path &name)=0
| Renames the loaded mesh.
virtual bool | renameMesh (u32 index, const io::path &name)=0
| Renames a loaded mesh.
_IRR_DEPRECATED_ bool | setMeshFilename (const IMesh *const mesh, const io::path &filename)
| Renames a loaded mesh.
_IRR_DEPRECATED_ bool | setMeshFilename (u32 index, const io::path &filename)
| Renames a loaded mesh.
Public Member Functions inherited from irr::IReferenceCounted
| IReferenceCounted ()
| Constructor.
virtual | ~IReferenceCounted ()
| Destructor.
bool | drop () const
| Drops the object. Decrements the reference counter by one.
const c8 * | getDebugName () const
| Returns the debug name of the object.
s32 | getReferenceCount () const
| Get the reference count.
void | grab () const
| Grabs the object. Increments the reference counter by one.

## Additional Inherited Members

Protected Member Functions inherited from irr::IReferenceCounted
void | setDebugName (const c8 *newName)
| Sets the debug name of the object.

## Detailed Description

The mesh cache stores already loaded meshes and provides an interface to them.

You can access it using ISceneManager::getMeshCache(). All existing scene managers will return a pointer to the same mesh cache, because it is shared between them. With this interface, it is possible to manually add new loaded meshes (if ISceneManager::getMesh() is not sufficient), to remove them and to iterate through already loaded meshes.

Definition at line 27 of file IMeshCache.h.

## Constructor & Destructor Documentation

## ~IMeshCache()

virtual irr::scene::IMeshCache::~IMeshCache | ( |  | ) |

inline virtual

Destructor.

Definition at line 32 of file IMeshCache.h.

## Member Function Documentation

## addMesh()

virtual void irr::scene::IMeshCache::addMesh | ( | const io::path & | name,
|  | IAnimatedMesh * | mesh )

pure virtual

Adds a mesh to the internal list of loaded meshes.

Usually, ISceneManager::getMesh() is called to load a mesh from a file. That method searches the list of loaded meshes if a mesh has already been loaded and returns a pointer to if it is in that list and already in memory. Otherwise it loads the mesh. With IMeshCache::addMesh(), it is possible to pretend that a mesh already has been loaded. This method can be used for example by mesh loaders who need to load more than one mesh with one call. They can add additional meshes with this method to the scene manager. The COLLADA loader for example uses this method.

Parameters

  name | Name of the mesh. When calling ISceneManager::getMesh() with this name it will return the mesh set by this method.
  mesh | Pointer to a mesh which will now be referenced by this name.

## clear()

virtual void irr::scene::IMeshCache::clear | ( |  | ) |

pure virtual

Clears the whole mesh cache, removing all meshes.

All meshes will be reloaded completely when using ISceneManager::getMesh() after calling this method. Warning: If you have pointers to meshes that were loaded with ISceneManager::getMesh() and you did not grab them, then they may become invalid.

## clearUnusedMeshes()

virtual void irr::scene::IMeshCache::clearUnusedMeshes | ( |  | ) |

pure virtual

Clears all meshes that are held in the mesh cache but not used anywhere else.

Warning: If you have pointers to meshes that were loaded with ISceneManager::getMesh() and you did not grab them, then they may become invalid.

## getMeshByFilename()

_IRR_DEPRECATED_ IAnimatedMesh * irr::scene::IMeshCache::getMeshByFilename | ( | const io::path & | filename | ) |

inline

Returns a mesh based on its name (often a filename).

Deprecated
  Use getMeshByName() instead. This method may be removed by Irrlicht 1.9

Definition at line 84 of file IMeshCache.h.

References _IRR_DEPRECATED_, and getMeshByName().

## getMeshByIndex()

virtual IAnimatedMesh * irr::scene::IMeshCache::getMeshByIndex | ( | u32 | index | ) |

pure virtual

Returns a mesh based on its index number.

Parameters

  index | Index of the mesh, number between 0 and getMeshCount()-1. Note that this number is only valid until a new mesh is loaded or removed.

Returns
  Pointer to the mesh or 0 if there is none with this number.

## getMeshByName()

virtual IAnimatedMesh * irr::scene::IMeshCache::getMeshByName | ( | const io::path & | name | ) |

pure virtual

Returns a mesh based on its name.

Parameters

  name | Name of the mesh. Usually a filename.

Returns
  Pointer to the mesh or 0 if there is none with this number.

Referenced by getMeshByFilename().

## getMeshCount()

virtual u32 irr::scene::IMeshCache::getMeshCount | ( |  | ) | const

pure virtual

Returns amount of loaded meshes in the cache.

You can load new meshes into the cache using getMesh() and addMesh(). If you ever need to access the internal mesh cache, you can do this using removeMesh(), getMeshNumber(), getMeshByIndex() and getMeshName().

Returns
  Number of meshes in cache.

## getMeshFilename() [1/2]

_IRR_DEPRECATED_ const io::path & irr::scene::IMeshCache::getMeshFilename | ( | const IMesh *const | mesh | ) | const

inline

Get the name of a loaded mesh, if there is any. (Name is often identical to the filename).

Deprecated
  Use getMeshName() instead. This method may be removed by Irrlicht 1.9

Definition at line 100 of file IMeshCache.h.

References _IRR_DEPRECATED_, irr::io::SNamedPath::getInternalName(), and getMeshName().

## getMeshFilename() [2/2]

_IRR_DEPRECATED_ const io::path & irr::scene::IMeshCache::getMeshFilename | ( | u32 | index | ) | const

inline

Get the name of a loaded mesh, based on its index. (Name is often identical to the filename).

Deprecated
  Use getMeshName() instead. This method may be removed by Irrlicht 1.9

Definition at line 92 of file IMeshCache.h.

References _IRR_DEPRECATED_, irr::io::SNamedPath::getInternalName(), and getMeshName().

## getMeshIndex()

virtual s32 irr::scene::IMeshCache::getMeshIndex | ( | const IMesh *const | mesh | ) | const

pure virtual

Returns current index number of the mesh or -1 when not found.

Parameters

  mesh | Pointer to the mesh to search for.

Returns
  Index of the mesh in the cache, or -1 if not found.

## getMeshName() [1/2]

virtual const io::SNamedPath & irr::scene::IMeshCache::getMeshName | ( | const IMesh *const | mesh | ) | const

pure virtual

Get the name of the loaded mesh if there is any.

Parameters

  mesh | Pointer to mesh to query.

Returns
  The name if mesh was found and has a name, else the path is empty.

## getMeshName() [2/2]

virtual const io::SNamedPath & irr::scene::IMeshCache::getMeshName | ( | u32 | index | ) | const

pure virtual

Get the name of a loaded mesh, based on its index.

Parameters

  index | Index of the mesh, number between 0 and getMeshCount()-1.

Returns
  The name if mesh was found and has a name, else the path is empty.

Referenced by getMeshFilename(), and getMeshFilename().

## isMeshLoaded()

virtual bool irr::scene::IMeshCache::isMeshLoaded | ( | const io::path & | name | ) |

pure virtual

Check if a mesh was already loaded.

Parameters

  name | Name of the mesh. Usually a filename.

Returns
  True if the mesh has been loaded, else false.

## removeMesh()

virtual void irr::scene::IMeshCache::removeMesh | ( | const IMesh *const | mesh | ) |

pure virtual

Removes the mesh from the cache.

After loading a mesh with getMesh(), the mesh can be removed from the cache using this method, freeing a lot of memory.

Parameters

  mesh | Pointer to the mesh which shall be removed.

## renameMesh() [1/2]

virtual bool irr::scene::IMeshCache::renameMesh | ( | const IMesh *const | mesh,
|  | const io::path & | name )

pure virtual

Renames the loaded mesh.

Note that renaming meshes might change the ordering of the meshes, and so the index of the meshes as returned by getMeshIndex() or taken by some methods will change.

Parameters

  mesh | Mesh to be renamed.
  name | New name for the mesh.

Returns
  True if mesh was renamed.

## renameMesh() [2/2]

virtual bool irr::scene::IMeshCache::renameMesh | ( | u32 | index,
|  | const io::path & | name )

pure virtual

Renames a loaded mesh.

Note that renaming meshes might change the ordering of the meshes, and so the index of the meshes as returned by getMeshIndex() or taken by some methods will change.

Parameters

  index | The index of the mesh in the cache.
  name | New name for the mesh.

Returns
  True if mesh was renamed.

Referenced by setMeshFilename(), and setMeshFilename().

## setMeshFilename() [1/2]

_IRR_DEPRECATED_ bool irr::scene::IMeshCache::setMeshFilename | ( | const IMesh *const | mesh,
|  | const io::path & | filename )

inline

Renames a loaded mesh.

Deprecated
  Use renameMesh() instead. This method may be removed by Irrlicht 1.9

Definition at line 116 of file IMeshCache.h.

References _IRR_DEPRECATED_, and renameMesh().

## setMeshFilename() [2/2]

_IRR_DEPRECATED_ bool irr::scene::IMeshCache::setMeshFilename | ( | u32 | index,
|  | const io::path & | filename )

inline

Renames a loaded mesh.

Deprecated
  Use renameMesh() instead. This method may be removed by Irrlicht 1.9

Definition at line 108 of file IMeshCache.h.

References _IRR_DEPRECATED_, and renameMesh().

The documentation for this class was generated from the following file:

- IMeshCache.h

- Irrlicht Engine Documentation © 2003-2012 by Nikolaus Gebhardt. Generated on for Irrlicht 3D Engine by Doxygen 1.15.0