OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
Engine::ECS::ComponentStorage< T > Class Template Reference

Stockage de composant typé selon template, basé sur l'interface générique. More...

#include <componentstorage.hpp>

Inheritance diagram for Engine::ECS::ComponentStorage< T >:
Engine::ECS::IComponentStorage

Public Member Functions

void Add (EntityID entityID, T *component)
 Ajoute un nouveau composant au stockage, associé à l'entityID donné
void Remove (EntityID entityID) override
 Supprime le composant associé à l'entityID donné
void Clear () override
 Nettoye le stockage de composants.
T * Get (EntityID entityID, int index=0)
 Récupère un pointeur vers le composant associé à l'entityID.
std::vector< T * > GetMany (EntityID entityID)
 Récupère un tableau de composants du type donné, associé à l'entityID.
T & GetRef (EntityID entityID, int index=0)
 Renvoie une référence vers le composant associé à l'entityID.
const std::unordered_map< EntityID, std::vector< T * > > & GetRaw () const
 Renvoie une réfèrence vers la table entière de stockage de composants.
Public Member Functions inherited from Engine::ECS::IComponentStorage
virtual ~IComponentStorage ()=default

Detailed Description

template<typename T>
class Engine::ECS::ComponentStorage< T >

Stockage de composant typé selon template, basé sur l'interface générique.

Template Parameters
TType de composant que le stockage utilise

Member Function Documentation

◆ Add()

template<typename T>
void Engine::ECS::ComponentStorage< T >::Add ( EntityID entityID,
T * component )
inline

Ajoute un nouveau composant au stockage, associé à l'entityID donné

Parameters
entityID
component

◆ Clear()

template<typename T>
void Engine::ECS::ComponentStorage< T >::Clear ( )
inlineoverridevirtual

Nettoye le stockage de composants.

Implements Engine::ECS::IComponentStorage.

◆ Get()

template<typename T>
T * Engine::ECS::ComponentStorage< T >::Get ( EntityID entityID,
int index = 0 )
inline

Récupère un pointeur vers le composant associé à l'entityID.

Parameters
entityID
Returns
T* Un pointeur vers le composant demandé (nullptr si introuvable)

◆ GetMany()

template<typename T>
std::vector< T * > Engine::ECS::ComponentStorage< T >::GetMany ( EntityID entityID)
inline

Récupère un tableau de composants du type donné, associé à l'entityID.

Parameters
entityID
Returns
std::vector<T*> Un tableau de pointeurs vers les composants demandés

◆ GetRaw()

template<typename T>
const std::unordered_map< EntityID, std::vector< T * > > & Engine::ECS::ComponentStorage< T >::GetRaw ( ) const
inline

Renvoie une réfèrence vers la table entière de stockage de composants.

Returns
const std::unordered_map<EntityID, std::vector<T*>>&

◆ GetRef()

template<typename T>
T & Engine::ECS::ComponentStorage< T >::GetRef ( EntityID entityID,
int index = 0 )
inline

Renvoie une référence vers le composant associé à l'entityID.

Parameters
entityID
Returns
T&

◆ Remove()

template<typename T>
void Engine::ECS::ComponentStorage< T >::Remove ( EntityID entityID)
inlineoverridevirtual

Supprime le composant associé à l'entityID donné

Parameters
entityID

Implements Engine::ECS::IComponentStorage.


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