CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::EntityManager Class Referencefinal

#include <CeresEngine/Entity/EntityManager.hpp>

Classes

class  QueryExecutor
 The query executor is responsible for iterating over entities and filtering them based on a given predicate. More...
 
class  QueryExecutor< AndPredicate< ComponentPredicate< Cs... >, SecondPredicate > >
 A specialization that optimizes a query with a and predicate starting with a ComponentPredicate. More...
 
class  QueryExecutor< ComponentPredicate< Cs... > >
 A specialization that optimizes a query whose predicate is only. More...
 
class  QueryExecutor< ParentPredicate >
 A specialization that optimizes a query whose predicate is ParentPredicate. More...
 

Public Member Functions

 EntityManager (EntityEventManager &eventManager)
 Creates a new entity manager.
 
 EntityManager (EntityEventManager &eventManager, EntityActionManager &actionManager)
 Creates a new entity manager.
 
 EntityManager (World &world, EntityEventManager &eventManager, EntityActionManager &actionManager)
 Creates a new entity manager.
 
 EntityManager (const EntityManager &)=delete
 
EntityManageroperator= (const EntityManager &)=delete
 
 EntityManager (EntityManager &&)=delete
 
EntityManageroperator= (EntityManager &&)=delete
 
 ~EntityManager ()
 Destroys the entity manager.
 
void update ()
 A method that must be called every frame by the engine to trigger runtime events.
 
EntityID allocate (const Entity &parent=nullEntity, String name={})
 Allocates a new entity ID.
 
Vector< EntityIDallocate (EntityIndex n, const Entity &parent=nullEntity)
 Allocates n new entity IDs.
 
Entity create (const Entity &parent=nullEntity, String name={})
 Creates a new entity.
 
Vector< Entitycreate (EntityIndex n, const Entity &parent=nullEntity)
 Creates n new entities.
 
Entity get (EntityID entityID)
 Gets a entity by its ID.
 
Entity get (EntityIndex entityIndex)
 Gets a entity by its index.
 
void destroy (EntityID entityID)
 Destroys a entity.
 
Entity copy (EntityID entityID)
 Copies the entity and all its components into a new entity.
 
bool valid (EntityID entityID) noexcept
 Checks if the given entity ID is valid.
 
void clear ()
 Removes all component & entities from the manager.
 
template<typename E , typename... Args>
E create (Args &&... args)
 Creates a new entity object with type E.
 
template<typename E , typename Block , typename... Args>
E createWith (Block &&block, Args &&... args)
 Creates a new entity object with type E.
 
void addListener (AbstractComponentListener &componentListener)
 Add a new ComponentListener to the entity manager.
 
void removeListener (AbstractComponentListener &componentListener)
 Removes an attached ComponentListener from the entity manager.
 
Generator< const Entityeach () const noexcept
 Creates a generator that iterates over all entities in the entity manager.
 
template<typename Predicate >
EntityQuery< Predicatequery (Predicate &&predicate) const noexcept
 Queries the entity manager for all entities matching the given predicate.
 
template<typename... Cs, typename Callable >
void with (Callable &&call) const noexcept
 Queries the entity manager for all entities containing the Cs components.
 
template<typename EO >
Generator< EO > with () const noexcept
 Queries the entity manager for all entities containing the Cs components.
 
WorldgetWorld () noexcept
 The world that owns the entity manager.
 
const WorldgetWorld () const noexcept
 
EntityEventManagerevents () noexcept
 
const EntityEventManagerevents () const noexcept
 
EntityActionManageractions () noexcept
 
const EntityActionManageractions () const noexcept
 

Private Member Functions

template<CComponent C, typename... Args>
CcreateComponent (EntityID entityID, Args &&... args) noexcept(std::is_nothrow_constructible_v< C, Args... >)
 Creates a new component of type C to the entity given by entityID.
 
AbstractComponentcreateComponent (EntityID entityID, const ComponentType &type, const Box &initialValue=nullptr)
 Creates a new component of the given type to the entity given by entityID.
 
template<CComponent C, typename... Args>
CsetComponent (EntityID entityID, Args &&... args) noexcept(std::is_nothrow_constructible_v< C, Args... >)
 Sets a entity component of type C to the entity given by entityID.
 
template<CComponent C>
void removeComponent (EntityID entityID) noexcept(std::is_nothrow_destructible_v< C >)
 Removes a entity component of type C from the entity given by ´entityID.
 
void removeComponent (EntityID entityID, const ComponentType &type)
 Removes a entity component of the given type from the entity given by ´entityID.
 
template<CComponent C>
CgetComponent (EntityID entityID) noexcept
 Gets a entity component of type C from the entity given by entityID.
 
AbstractComponentgetComponent (EntityID entityID, const ComponentType &type)
 Gets a entity component of the given type from the entity given by entityID.
 
Vector< AbstractComponent * > getComponents (EntityID entityID)
 
template<CComponent... Cs>
bool hasComponents (EntityID entityID) const noexcept
 Checks if a entity has all components of types Cs present on the entity given by entityID.
 
bool hasComponents (EntityID entityID, ComponentMask mask) const noexcept
 Checks if a entity has all components specified by the given mask.
 
void clear (EntityID entityID)
 Removes all components attached to the entity given by entityID, without destroying the entity itself.
 
bool empty (EntityID entityID) noexcept
 Checks if the entity given by entityID, is empty (i.e.
 
template<typename E >
bool is (EntityID entityID) const noexcept
 Checks if the entity matches the criteria to be considered a E entity object.
 
template<typename E >
E as (EntityID entityID) const
 Converts the entity handle type into a E entity object.
 
template<typename E >
E being (EntityID entityID) const noexcept
 Converts the entity handle type into a E entity object.
 
Entity getParent (EntityID entityID) const noexcept
 Gets the parent entity for the entity identified by entityID.
 
void setParent (EntityID entityID, Entity parent)
 Sets the parent for the entity identified by entityID.
 
const Vector< Entity > & getChildren (EntityID entityID) const noexcept
 Gets the list of children for the entity identified by entityID.
 
StringView getName (EntityID entityID) const noexcept
 Gets the name for the entity identified by entityID.
 
void setName (EntityID entityID, String name)
 Sets the name for the entity identified by entityID.
 
void triggerComponentListeners (EntityID entityID, ComponentMask oldMask, ComponentMask newMask) noexcept
 
template<CComponent C, typename T >
void markComponentFieldAsDirty (EntityID entityID, T C::*fieldPointer)
 
void markComponentFieldAsDirty (EntityID entityID, const ComponentType &componentType, const ClassProperty *property)
 Marks the component of the given entity as dirty.
 
void markEntityAsDirty (EntityID entityID, EntityDirtyFlags flags)
 Marks an entity as dirty.
 
EntityMetadatametadata (EntityID entityID)
 
EntityMetadatametadataIf (EntityID entityID) noexcept
 
const EntityMetadatametadataIf (EntityID entityID) const noexcept
 
template<typename C >
ComponentStore< C > & getComponentStore () noexcept
 Gets the component store for the component type C.
 
template<typename C >
const ComponentStore< C > & getComponentStore () const noexcept
 Gets the component store for the component type C.
 
AbstractComponentStoregetComponentStore (ComponentID componentID) noexcept
 Gets the component store for the component identified by componentID.
 

Private Attributes

Vector< UPtr< AbstractComponentStore > > mComponentStores
 A vector containing all component stores indexed by their component IDs.
 
ComponentMaskSet mComponentMasks
 A vector of component masks for every known entity, indexed by their entity indexes.
 
EntityIDAllocator mAllocator
 The entity ID allocator.
 
Vector< EntityMetadatamEntityMetadata
 A vector containing metadata for an allocated entity.
 
HashMap< ComponentMask, Vector< AbstractComponentListener * > > mComponentListeners
 A set of listeners for component changes.
 
Map< EntityIndex, EntityChangeSetmDirtyEntities
 A list of entities whose components have been recently dirtied.
 
WorldmWorld = nullptr
 The world that owns the entity manager.
 
EntityEventManagermEventManager
 The event manager that should receive notifications from the EntityManager.
 
EntityActionManagermActionManager
 The event manager that should receive notifications from the EntityManager.
 

Static Private Attributes

static const Entity nullEntity
 

Friends

template<typename C >
class TComponentType
 
class Entity
 
template<CComponent... Components>
class EntityObject
 
template<typename T , typename Component >
struct ComponentFieldMutator
 

Constructor & Destructor Documentation

◆ EntityManager() [1/5]

CeresEngine::EntityManager::EntityManager ( EntityEventManager eventManager)
explicit

Creates a new entity manager.

◆ EntityManager() [2/5]

CeresEngine::EntityManager::EntityManager ( EntityEventManager eventManager,
EntityActionManager actionManager 
)
explicit

Creates a new entity manager.

◆ EntityManager() [3/5]

CeresEngine::EntityManager::EntityManager ( World world,
EntityEventManager eventManager,
EntityActionManager actionManager 
)
explicit

Creates a new entity manager.

◆ EntityManager() [4/5]

CeresEngine::EntityManager::EntityManager ( const EntityManager )
delete

◆ EntityManager() [5/5]

CeresEngine::EntityManager::EntityManager ( EntityManager &&  )
delete

◆ ~EntityManager()

CeresEngine::EntityManager::~EntityManager ( )

Destroys the entity manager.

Member Function Documentation

◆ actions() [1/2]

const EntityActionManager & CeresEngine::EntityManager::actions ( ) const
noexcept
Returns
The action manager

◆ actions() [2/2]

EntityActionManager & CeresEngine::EntityManager::actions ( )
noexcept
Returns
The action manager

◆ addListener()

void CeresEngine::EntityManager::addListener ( AbstractComponentListener componentListener)

Add a new ComponentListener to the entity manager.

Parameters
componentListenerThe component manager to be added

◆ allocate() [1/2]

EntityID CeresEngine::EntityManager::allocate ( const Entity parent = nullEntity,
String  name = {} 
)

Allocates a new entity ID.

Returns
The allocated entity ID

◆ allocate() [2/2]

Vector< EntityID > CeresEngine::EntityManager::allocate ( EntityIndex  n,
const Entity parent = nullEntity 
)

Allocates n new entity IDs.

Parameters
nThe number of entity IDs to allocate
Returns
A vector of the n allocated entity IDs

◆ as()

template<typename E >
E CeresEngine::EntityManager::as ( EntityID  entityID) const
inlineprivate

Converts the entity handle type into a E entity object.

Template Parameters
Ethe entity object type
Parameters
entityIDThe entity ID
Returns
A entity of type E

◆ being()

template<typename E >
E CeresEngine::EntityManager::being ( EntityID  entityID) const
inlineprivatenoexcept

Converts the entity handle type into a E entity object.

This method is similar to as but instead of throwing in case the entity cannot be E, it returns a nullptr entity.

Template Parameters
Ethe entity object type
Parameters
entityIDThe entity ID
Returns
A entity of type E

◆ clear() [1/2]

void CeresEngine::EntityManager::clear ( )

Removes all component & entities from the manager.

◆ clear() [2/2]

void CeresEngine::EntityManager::clear ( EntityID  entityID)
private

Removes all components attached to the entity given by entityID, without destroying the entity itself.

Parameters
entityIDThe entity ID

◆ copy()

Entity CeresEngine::EntityManager::copy ( EntityID  entityID)

Copies the entity and all its components into a new entity.

Parameters
entityIDThe entity ID to be copied

◆ create() [1/3]

template<typename E , typename... Args>
E CeresEngine::EntityManager::create ( Args &&...  args)
inline

Creates a new entity object with type E.

All components defined in the E entity object are default-initialized (if possible). After default initializing all components, the constructor of E is called by forwarding args to it.

Template Parameters
Ethe entity object type
Argsthe entity object constructor argument types
Parameters
argsThe entity object constructor arguments
Returns
The newly created and initialized entity object

◆ create() [2/3]

Entity CeresEngine::EntityManager::create ( const Entity parent = nullEntity,
String  name = {} 
)

Creates a new entity.

Returns
The created entity

◆ create() [3/3]

Vector< Entity > CeresEngine::EntityManager::create ( EntityIndex  n,
const Entity parent = nullEntity 
)

Creates n new entities.

Parameters
nThe number of entities to created
Returns
A vector of the n created entities

◆ createComponent() [1/2]

template<CComponent C, typename... Args>
C & CeresEngine::EntityManager::createComponent ( EntityID  entityID,
Args &&...  args 
) const
inlineprivatenoexcept

Creates a new component of type C to the entity given by entityID.

If a component of type C is already present on the entity, the method throws. The new component is created by passing args to its constructor.

Template Parameters
CThe component type.
ArgsThe component constructor argument types.
Parameters
entityIDThe entity ID.
argsThe component constructor arguments.
Returns
A reference to the created component.

◆ createComponent() [2/2]

AbstractComponent & CeresEngine::EntityManager::createComponent ( EntityID  entityID,
const ComponentType type,
const Box initialValue = nullptr 
)
private

Creates a new component of the given type to the entity given by entityID.

If a component of the given type is already present on the entity, the method throws. The new component is created by calling it's default constructor.

Parameters
entityIDThe entity ID.
typeThe component type.
Returns
A reference to the created component.

◆ createWith()

template<typename E , typename Block , typename... Args>
E CeresEngine::EntityManager::createWith ( Block &&  block,
Args &&...  args 
)
inline

Creates a new entity object with type E.

All components defined in the E entity object are default-initialized (if possible). After default initializing all components, the constructor of E is called by forwarding args to it. After creation and default component initialization, block is called with the newly created entity.

Template Parameters
Ethe entity object type
Blockthe block to be executed after entity initialization
Argsthe entity object constructor argument types
Parameters
argsThe entity object constructor arguments
blockThe block to be executed after entity initialization
Returns
The newly created and initialized entity object

◆ destroy()

void CeresEngine::EntityManager::destroy ( EntityID  entityID)

Destroys a entity.

Parameters
entityIDThe entity ID to be destroyed

◆ each()

Generator< const Entity > CeresEngine::EntityManager::each ( ) const
noexcept

Creates a generator that iterates over all entities in the entity manager.

Returns
A generator that iterates over all entities currently registered.

◆ empty()

bool CeresEngine::EntityManager::empty ( EntityID  entityID)
privatenoexcept

Checks if the entity given by entityID, is empty (i.e.

has no components attached).

Parameters
entityIDThe entity ID
Returns
True if the entity has no components

◆ events() [1/2]

const EntityEventManager & CeresEngine::EntityManager::events ( ) const
noexcept
Returns
The event manager

◆ events() [2/2]

EntityEventManager & CeresEngine::EntityManager::events ( )
noexcept
Returns
The event manager

◆ get() [1/2]

Entity CeresEngine::EntityManager::get ( EntityID  entityID)

Gets a entity by its ID.

Parameters
entityIDThe entity ID
Returns
The entity given by the entityID.

◆ get() [2/2]

Entity CeresEngine::EntityManager::get ( EntityIndex  entityIndex)

Gets a entity by its index.

Parameters
entityIndexThe entity index
Returns
The entity given by the entityIndex.

◆ getChildren()

const Vector< Entity > & CeresEngine::EntityManager::getChildren ( EntityID  entityID) const
privatenoexcept

Gets the list of children for the entity identified by entityID.

Parameters
entityIDThe entity ID to get children for
Returns
A vector of children for the entity

◆ getComponent() [1/2]

template<CComponent C>
C & CeresEngine::EntityManager::getComponent ( EntityID  entityID)
inlineprivatenoexcept

Gets a entity component of type C from the entity given by entityID.

If a component of type C is not present on the entity, the method throws.

Template Parameters
Cthe component type
Parameters
entityIDThe entity ID
Returns
A reference to the component

◆ getComponent() [2/2]

AbstractComponent & CeresEngine::EntityManager::getComponent ( EntityID  entityID,
const ComponentType type 
)
private

Gets a entity component of the given type from the entity given by entityID.

If a component of type of the given type is not present on the entity, the method throws.

Parameters
entityIDThe entity ID.
typeThe component type.
Returns
A reference to the component

◆ getComponents()

Vector< AbstractComponent * > CeresEngine::EntityManager::getComponents ( EntityID  entityID)
private

◆ getComponentStore() [1/3]

template<typename C >
const ComponentStore< C > & CeresEngine::EntityManager::getComponentStore ( ) const
inlineprivatenoexcept

Gets the component store for the component type C.

If a component store is not created, this method will create one.

Template Parameters
Cthe component type
Returns
A reference to the component store.

◆ getComponentStore() [2/3]

template<typename C >
ComponentStore< C > & CeresEngine::EntityManager::getComponentStore ( )
inlineprivatenoexcept

Gets the component store for the component type C.

If a component store is not created, this method will create one.

Template Parameters
Cthe component type
Returns
A reference to the component store.

◆ getComponentStore() [3/3]

AbstractComponentStore & CeresEngine::EntityManager::getComponentStore ( ComponentID  componentID)
privatenoexcept

Gets the component store for the component identified by componentID.

If a component store is not created, this method throws.

Parameters
componentIDThe component ID
Returns
A reference to the component store

◆ getName()

StringView CeresEngine::EntityManager::getName ( EntityID  entityID) const
privatenoexcept

Gets the name for the entity identified by entityID.

Parameters
entityIDThe entity ID to get the name for
Returns
The entity name

◆ getParent()

Entity CeresEngine::EntityManager::getParent ( EntityID  entityID) const
privatenoexcept

Gets the parent entity for the entity identified by entityID.

Parameters
entityIDThe entity ID to get the parent for
Returns
The parent entity

◆ getWorld() [1/2]

const World & CeresEngine::EntityManager::getWorld ( ) const
inlinenoexcept

◆ getWorld() [2/2]

World & CeresEngine::EntityManager::getWorld ( )
inlinenoexcept

The world that owns the entity manager.

◆ hasComponents() [1/2]

template<CComponent... Cs>
bool CeresEngine::EntityManager::hasComponents ( EntityID  entityID) const
privatenoexcept

Checks if a entity has all components of types Cs present on the entity given by entityID.

Template Parameters
Csthe component types
Parameters
entityIDThe entity ID
Returns
True if the component is present, false otherwise.

◆ hasComponents() [2/2]

bool CeresEngine::EntityManager::hasComponents ( EntityID  entityID,
ComponentMask  mask 
) const
privatenoexcept

Checks if a entity has all components specified by the given mask.

Parameters
entityIDThe entity ID
maskThe mask to check against
Returns
True if the component is present, false otherwise.

◆ is()

template<typename E >
bool CeresEngine::EntityManager::is ( EntityID  entityID) const
inlineprivatenoexcept

Checks if the entity matches the criteria to be considered a E entity object.

Template Parameters
Ethe entity object type
Parameters
entityIDThe entity ID
Returns
True if the entity can be viewed as a E entity object.

◆ markComponentFieldAsDirty() [1/2]

void CeresEngine::EntityManager::markComponentFieldAsDirty ( EntityID  entityID,
const ComponentType componentType,
const ClassProperty property 
)
private

Marks the component of the given entity as dirty.

Parameters
entityIDThe entity whose component should be dirtied.
propertyThe component property which has been dirtied.

◆ markComponentFieldAsDirty() [2/2]

template<CComponent C, typename T >
void CeresEngine::EntityManager::markComponentFieldAsDirty ( EntityID  entityID,
T C::*  fieldPointer 
)
private

◆ markEntityAsDirty()

void CeresEngine::EntityManager::markEntityAsDirty ( EntityID  entityID,
EntityDirtyFlags  flags 
)
private

Marks an entity as dirty.

◆ metadata()

EntityMetadata & CeresEngine::EntityManager::metadata ( EntityID  entityID)
private

◆ metadataIf() [1/2]

const EntityMetadata * CeresEngine::EntityManager::metadataIf ( EntityID  entityID) const
privatenoexcept

◆ metadataIf() [2/2]

EntityMetadata * CeresEngine::EntityManager::metadataIf ( EntityID  entityID)
privatenoexcept

◆ operator=() [1/2]

EntityManager & CeresEngine::EntityManager::operator= ( const EntityManager )
delete

◆ operator=() [2/2]

EntityManager & CeresEngine::EntityManager::operator= ( EntityManager &&  )
delete

◆ query()

template<typename Predicate >
EntityQuery< Predicate > CeresEngine::EntityManager::query ( Predicate &&  predicate) const
inlinenoexcept

Queries the entity manager for all entities matching the given predicate.

Template Parameters
Predicatethe predicate type to apply entities to
Parameters
predicateThe predicate to apply entities to
Returns
A query object that can be used to enumerate matching entities

◆ removeComponent() [1/2]

template<CComponent C>
void CeresEngine::EntityManager::removeComponent ( EntityID  entityID)
inlineprivatenoexcept

Removes a entity component of type C from the entity given by ´entityID.

If a component of typeC` is not present on the entity, the method throws.

Template Parameters
Cthe component type
Parameters
entityIDThe entity ID

◆ removeComponent() [2/2]

void CeresEngine::EntityManager::removeComponent ( EntityID  entityID,
const ComponentType type 
)
private

Removes a entity component of the given type from the entity given by ´entityID.

If a component of the giventype` is not present on the entity, the method throws.

Parameters
entityIDThe entity ID.
typeThe component type.

◆ removeListener()

void CeresEngine::EntityManager::removeListener ( AbstractComponentListener componentListener)

Removes an attached ComponentListener from the entity manager.

Parameters
componentListenerThe component manager to be removed

◆ setComponent()

template<CComponent C, typename... Args>
C & CeresEngine::EntityManager::setComponent ( EntityID  entityID,
Args &&...  args 
) const
inlineprivatenoexcept

Sets a entity component of type C to the entity given by entityID.

If a component of type C is already present on the entity, the contents of the component are replaced. The new component, if needed, is created is by passing args to its constructor.

Template Parameters
Cthe component type
Argsthe component constructor argument types
Parameters
entityIDThe entity ID
argsThe component constructor arguments
Returns
A reference to the replaced component

◆ setName()

void CeresEngine::EntityManager::setName ( EntityID  entityID,
String  name 
)
private

Sets the name for the entity identified by entityID.

Parameters
entityIDThe entity ID to set the name for
nameThe entity name

◆ setParent()

void CeresEngine::EntityManager::setParent ( EntityID  entityID,
Entity  parent 
)
private

Sets the parent for the entity identified by entityID.

Parameters
entityIDThe entity ID to set the parent for
parentThe parent to be set for the entity

◆ triggerComponentListeners()

void CeresEngine::EntityManager::triggerComponentListeners ( EntityID  entityID,
ComponentMask  oldMask,
ComponentMask  newMask 
)
privatenoexcept

◆ update()

void CeresEngine::EntityManager::update ( )

A method that must be called every frame by the engine to trigger runtime events.

◆ valid()

bool CeresEngine::EntityManager::valid ( EntityID  entityID)
noexcept

Checks if the given entity ID is valid.

Parameters
entityIDThe entity ID to be checked
Returns
True if the entity is valid, false otherwise

◆ with() [1/2]

template<typename EO >
Generator< EO > CeresEngine::EntityManager::with ( ) const
inlinenoexcept

Queries the entity manager for all entities containing the Cs components.

Template Parameters
EOthe entity object type to be queried
Returns
A generator returning the matching entity objects

◆ with() [2/2]

template<typename... Cs, typename Callable >
void CeresEngine::EntityManager::with ( Callable &&  call) const
inlinenoexcept

Queries the entity manager for all entities containing the Cs components.

Template Parameters
Csthe components to be queried
Callablea callable type. The callable return type can be either bool or void.
Parameters
callA callable type that gets invoked for every entity containing all Cs components. If the callable returns false, the query stops and the method returns immediately.

Friends And Related Symbol Documentation

◆ ComponentFieldMutator

◆ Entity

◆ EntityObject

template<CComponent... Components>
friend class EntityObject
friend

◆ TComponentType

template<typename C >
friend class TComponentType
friend

Member Data Documentation

◆ mActionManager

EntityActionManager* CeresEngine::EntityManager::mActionManager
private

The event manager that should receive notifications from the EntityManager.

◆ mAllocator

EntityIDAllocator CeresEngine::EntityManager::mAllocator
private

The entity ID allocator.

◆ mComponentListeners

HashMap<ComponentMask, Vector<AbstractComponentListener*> > CeresEngine::EntityManager::mComponentListeners
private

A set of listeners for component changes.

◆ mComponentMasks

ComponentMaskSet CeresEngine::EntityManager::mComponentMasks
private

A vector of component masks for every known entity, indexed by their entity indexes.

◆ mComponentStores

Vector<UPtr<AbstractComponentStore> > CeresEngine::EntityManager::mComponentStores
private

A vector containing all component stores indexed by their component IDs.

◆ mDirtyEntities

Map<EntityIndex, EntityChangeSet> CeresEngine::EntityManager::mDirtyEntities
private

A list of entities whose components have been recently dirtied.

◆ mEntityMetadata

Vector<EntityMetadata> CeresEngine::EntityManager::mEntityMetadata
private

A vector containing metadata for an allocated entity.

◆ mEventManager

EntityEventManager& CeresEngine::EntityManager::mEventManager
private

The event manager that should receive notifications from the EntityManager.

◆ mWorld

World* CeresEngine::EntityManager::mWorld = nullptr
private

The world that owns the entity manager.

◆ nullEntity

const Entity CeresEngine::EntityManager::nullEntity
staticprivate

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