TDME2  1.9.200
MeshManager.cpp
Go to the documentation of this file.
2 
3 #include <string>
4 #include <unordered_map>
5 
6 #include <tdme/tdme.h>
10 
11 using std::string;
12 using std::unordered_map;
13 
18 
19 MeshManager::MeshManager()
20 {
21 }
22 
24  for (const auto& [meshManagedId, meshManaged]: meshes) delete meshManaged;
25 }
26 
27 void MeshManager::addMesh(const string& meshId, ObjectNodeMesh* mesh)
28 {
29  // create managed texture
30  auto meshManaged = new MeshManager_MeshManaged(meshId, mesh);
31  meshManaged->incrementReferenceCounter();
32  // add it to our textures
33  meshes[meshManaged->getId()] = meshManaged;
34 }
35 
36 void MeshManager::removeMesh(const string& meshId)
37 {
38  auto meshManagedIt = meshes.find(meshId);
39  if (meshManagedIt != meshes.end()) {
40  auto meshManaged = meshManagedIt->second;
41  if (meshManaged->decrementReferenceCounter()) {
42  // remove from our list
43  meshes.erase(meshManagedIt);
44  delete meshManaged;
45  }
46  return;
47  }
48  Console::println(string("Warning: mesh not managed by mesh manager: " + meshId));
49 }
unordered_map< string, MeshManager_MeshManaged * > meshes
Definition: MeshManager.h:25
void removeMesh(const string &meshId)
Removes a mesh from manager.
Definition: MeshManager.cpp:36
void addMesh(const string &meshId, ObjectNodeMesh *mesh)
Adds a mesh to manager.
Definition: MeshManager.cpp:27
Object node mesh specifically for rendering.
Console class.
Definition: Console.h:29