![]() |
Divide Framework 0.1
A free and open-source 3D Framework under heavy development
|
#include <EntityManager.h>
Classes | |
class | EntityContainer |
class | IEntityContainer |
Public Member Functions | |
EntityManager (ComponentManager *componentManagerInstance) | |
~EntityManager () | |
template<class T , class... ARGS> | |
EntityId | CreateEntity (ARGS &&... args) |
void | DestroyAndRemoveEntity (EntityId entityId) |
void | DestroyEntity (EntityId entityId) |
IEntity * | GetEntity (EntityId entityId) |
EntityId | GetEntityId (EntityId::value_type index) const |
void | RemoveDestroyedEntity (EntityId id) |
void | RemoveDestroyedEntities () |
Private Types | |
using | EntityRegistry = eastl::unordered_map< EntityTypeId, IEntityContainer * > |
using | PendingDestroyedEntities = eastl::vector< EntityId > |
Private Member Functions | |
EntityManager (const EntityManager &)=delete | |
EntityManager & | operator= (EntityManager &)=delete |
template<class T > | |
EntityContainer< T > * | GetEntityContainer () |
EntityId | AqcuireEntityId (IEntity *entity) |
void | ReleaseEntityId (EntityId id) |
Private Attributes | |
EntityRegistry | m_EntityRegistry |
PendingDestroyedEntities | m_PendingDestroyedEntities |
size_t | m_NumPendingDestroyedEntities |
ComponentManager * | m_ComponentManagerInstance = nullptr |
Summary: The component manager instance. | |
EntityHandleTable | m_EntityHandleTable |
Definition at line 38 of file EntityManager.h.
|
private |
Definition at line 99 of file EntityManager.h.
|
private |
Definition at line 102 of file EntityManager.h.
|
privatedelete |
ECS::EntityManager::EntityManager | ( | ComponentManager * | componentManagerInstance | ) |
Definition at line 13 of file EntityManager.cpp.
ECS::EntityManager::~EntityManager | ( | ) |
Definition at line 22 of file EntityManager.cpp.
Fn: EntityId EntityManager::AqcuireEntityId(IEntity* entity);
Summary: Aqcuire entity identifier. This method will be used be IEntity class c'tor to set the entity id on creation.
Author: Tobias Stein
Date: 24/09/2017
Parameters: entity - [in,out] If non-null, the entity.
Definition at line 34 of file EntityManager.cpp.
|
inline |
Fn: template<class T, class... ARGS> EntityId EntityManager::CreateEntity(ARGS&&... args)
Summary: Creates an entity of type T and returns its id.
Author: Tobias Stein
Date: 30/09/2017
Typeparams: T - Generic type parameter. ARGS - Type of the arguments. Parameters: args - Variable arguments providing [in,out] The arguments.
Definition at line 210 of file EntityManager.h.
|
inline |
Definition at line 227 of file EntityManager.h.
|
inline |
Definition at line 232 of file EntityManager.h.
Fn: inline void* EntityManager::GetEntity(const EntityId id)
Summary: Get an entity object by its id.
Author: Tobias Stein
Date: 23/09/2017
Parameters: id - The identifier.
Definition at line 261 of file EntityManager.h.
|
inlineprivate |
Fn: template<class T> inline EntityContainer<T>* EntityManager::GetEntityContainer()
Summary: Returns/Creates an entity container for entities of type T.
Author: Tobias Stein
Date: 23/09/2017
Typeparams: T - Generic type parameter.
Definition at line 134 of file EntityManager.h.
|
inline |
Fn: inline EntityId EntityManager::GetEntityId(EntityId::index_type index)
Summary: Gets the currently stored entity identifier at the given index.
Author: Tobias Stein
Date: 2/10/2017
Parameters: index - Zero-based index of the.
Definition at line 281 of file EntityManager.h.
|
privatedelete |
|
private |
Fn: void EntityManager::ReleaseEntityId(EntityId id);
Summary: Releases the entity identifier for reuse.
Author: Tobias Stein
Date: 23/09/2017
Parameters:
Definition at line 39 of file EntityManager.cpp.
void ECS::EntityManager::RemoveDestroyedEntities | ( | ) |
Fn: void EntityManager::RemoveDestroyedEntities();
Summary: Removes all destroyed entities.
Author: Tobias Stein
Definition at line 64 of file EntityManager.cpp.
void ECS::EntityManager::RemoveDestroyedEntity | ( | EntityId | id | ) |
Definition at line 44 of file EntityManager.cpp.
|
private |
Summary: The component manager instance.
Definition at line 107 of file EntityManager.h.
|
private |
Definition at line 114 of file EntityManager.h.
|
private |
Definition at line 100 of file EntityManager.h.
|
private |
Definition at line 104 of file EntityManager.h.
|
private |
Definition at line 103 of file EntityManager.h.