OGL Engine 1.2.0-dev
Loading...
Searching...
No Matches
Engine::ECS::Entity Class Reference

Une entité est l'élément "atomique" utilisé dans l'architecture ECS pour référencer les composants. More...

#include <entity.hpp>

Public Member Functions

 Entity (EntityID id=-1, Registry *registry=nullptr)
 Construit une nouvelle entité
EntityID GetID () const
 Retourne l'identifiant EntityID de cette.
bool IsValid () const
 Renvoie true si l'entité est valide, false sinon.
std::string ToString () const
 Renvoie une chaine de caractères qui représente cette entité
RegistryGetRegistry () const
 Renvoie le registre parent de cet entité
void AddTag (std::string tag)
 Ajoute un tag à l'entité actuelle.
bool HasTag (std::string tag)
 Check si l'entité possède un tag.
template<typename T, typename... Args>
T & AddComponent (Args &&... args)
 Ajoute un component de type T au registre, référencé sous l'entityID de cette entité
template<typename T>
void RemoveComponent ()
 Supprime le composant de type T référencé par l'EntityID de cette entité
template<typename T>
T & GetComponent ()
 Retourne le premier composant de type T associé à cette entité
template<typename T>
std::vector< T * > GetComponents ()
 Retourne le tableau de composants de type T associé à cette entité
template<typename T>
bool HasComponent ()
 Vérifie si l'entité possède le component demandé
void AddChild (EntityID childID)
 Ajoute l'identifiant donné comme "enfant".
void SetParent (EntityID parentID)
 Ajoute l'identifiant donné comme "parent".
void RemoveChild (EntityID childID)
 Supprime le lien avec l'entité enfant donnée.
void RemoveParent ()
 Supprime le lien reliant cette entité à son parent.

Detailed Description

Une entité est l'élément "atomique" utilisé dans l'architecture ECS pour référencer les composants.

Constructor & Destructor Documentation

◆ Entity()

Engine::ECS::Entity::Entity ( EntityID id = -1,
Registry * registry = nullptr )

Construit une nouvelle entité

Parameters
id
registry

Member Function Documentation

◆ AddChild()

void Engine::ECS::Entity::AddChild ( EntityID childID)

Ajoute l'identifiant donné comme "enfant".

Parameters
childID

◆ AddComponent()

template<typename T, typename... Args>
T & Engine::ECS::Entity::AddComponent ( Args &&... args)
inline

Ajoute un component de type T au registre, référencé sous l'entityID de cette entité

Cette méthode est un wrapper autour de registry->AddComponent<T>(EntityID)

Template Parameters
TLe type du composant à ajouter
Args
Parameters
argsLes arguments de constructions du component
Returns
T& Une référence vers le composant créé

◆ AddTag()

void Engine::ECS::Entity::AddTag ( std::string tag)

Ajoute un tag à l'entité actuelle.

Cette méthode est un wrapper sur Registry->AddTag(EntityID, std::string)

Parameters
tag

◆ GetComponent()

template<typename T>
T & Engine::ECS::Entity::GetComponent ( )
inline

Retourne le premier composant de type T associé à cette entité

Wrapper autour de registry->GetComponent(id)

Template Parameters
T
Returns
T& Une référence au composant demandé

◆ GetComponents()

template<typename T>
std::vector< T * > Engine::ECS::Entity::GetComponents ( )
inline

Retourne le tableau de composants de type T associé à cette entité

Wrapper autour de registry->GetComponents(id)

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

◆ GetID()

EntityID Engine::ECS::Entity::GetID ( ) const

Retourne l'identifiant EntityID de cette.

Returns
EntityID

◆ GetRegistry()

Registry & Engine::ECS::Entity::GetRegistry ( ) const

Renvoie le registre parent de cet entité

Returns
Registry&

◆ HasComponent()

template<typename T>
bool Engine::ECS::Entity::HasComponent ( )
inline

Vérifie si l'entité possède le component demandé

Template Parameters
T
Returns
bool

◆ HasTag()

bool Engine::ECS::Entity::HasTag ( std::string tag)

Check si l'entité possède un tag.

Cette méthode est un wrapper autour de Registry->HasTag(EntityID, std::string)

Parameters
tag
Returns
true Si l'entité possède le tag
false Si l'entité ne possède pas le tag

◆ IsValid()

bool Engine::ECS::Entity::IsValid ( ) const

Renvoie true si l'entité est valide, false sinon.

Les critères sont :

  • mID > 0
  • mRegistry != nullptr
  • mRegistry->IsValidEntity(mID) == true
Returns
true
false

◆ RemoveChild()

void Engine::ECS::Entity::RemoveChild ( EntityID childID)

Supprime le lien avec l'entité enfant donnée.

Parameters
childID

◆ RemoveComponent()

template<typename T>
void Engine::ECS::Entity::RemoveComponent ( )
inline

Supprime le composant de type T référencé par l'EntityID de cette entité

Wrapper autour de registry->RemoveComponent(id)

Template Parameters
T

◆ RemoveParent()

void Engine::ECS::Entity::RemoveParent ( )

Supprime le lien reliant cette entité à son parent.

◆ SetParent()

void Engine::ECS::Entity::SetParent ( EntityID parentID)

Ajoute l'identifiant donné comme "parent".

Parameters
parentID

◆ ToString()

std::string Engine::ECS::Entity::ToString ( ) const

Renvoie une chaine de caractères qui représente cette entité

Returns
std::string

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