TDME2  1.9.200
MeshManager_MeshManaged.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <memory>
4 #include <string>
5 
6 #include <tdme/tdme.h>
9 
10 using std::string;
11 using std::unique_ptr;
12 
15 
16 /**
17  * Managed mesh entity
18  * @author Andreas Drewke
19  */
21 {
22  friend class MeshManager;
23 
24 private:
25  string id;
26  unique_ptr<ObjectNodeMesh> mesh;
27  int32_t referenceCounter { 0 };
28 
29 private:
30  // forbid class copy
32 
33  /**
34  * Protected constructor
35  * @param id id
36  * @param mesh mesh
37  */
38  MeshManager_MeshManaged(const string& id, ObjectNodeMesh* mesh);
39 
40  /**
41  * Protected Denstructor
42  */
44 
45  /**
46  * @return mesh id
47  */
48  inline const string& getId() {
49  return id;
50  }
51 
52  /**
53  * @return object node mesh
54  */
55  inline ObjectNodeMesh* getMesh() {
56  return mesh.get();
57  }
58 
59  /**
60  * @return reference counter
61  */
62  inline int32_t getReferenceCounter() {
63  return referenceCounter;
64  }
65 
66  /**
67  * decrement reference counter
68  * @return if reference counter = 0
69  */
70  inline bool decrementReferenceCounter() {
72  return referenceCounter == 0;
73  }
74 
75  /**
76  * increment reference counter
77  */
78  inline void incrementReferenceCounter() {
80  }
81 
82 };
MeshManager_MeshManaged(const string &id, ObjectNodeMesh *mesh)
Protected constructor.
Object node mesh specifically for rendering.
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6