139 JADG_ASSERT(
has(entity),
"L'entite ne possede pas ce composant.");
150 JADG_ASSERT(
has(entity),
"L'entite ne possede pas ce composant.");
155 [[nodiscard]] std::size_t
size()
const {
168 [[nodiscard]]
const std::vector<Entity>&
entities()
const {
Assertions du projet : vérifient préconditions et invariants (bugs).
#define JADG_ASSERT(condition, message)
Vérifie une précondition.
Definition Assert.h:47
Identifiant d'entité de l'ECS : handle générationnel (index + génération).
Stockage dense des composants d'un type T, indexé par entité (sparse set).
Definition ComponentPool.h:61
static constexpr std::size_t INVALID_POSITION
Position dense réservée signifiant « aucun composant pour cette entité ».
Definition ComponentPool.h:64
void ensureSparseSize(Entity::Index index)
Agrandit le tableau creux pour qu'il couvre un index d'entité donné.
Definition ComponentPool.h:185
std::vector< Entity > _entities
Entités propriétaires, parallèle à _components.
Definition ComponentPool.h:194
const T & get(Entity entity) const
Accède au composant d'une entité (lecture seule).
Definition ComponentPool.h:149
const std::vector< T > & components() const
Composants stockés, dans l'ordre du tableau dense.
Definition ComponentPool.h:176
std::vector< std::size_t > _sparse
Position dense de chaque entité, indexé par Entity::index (INVALID_POSITION si absente).
Definition ComponentPool.h:196
const std::vector< Entity > & entities() const
Entités possédant un composant, dans l'ordre du tableau dense.
Definition ComponentPool.h:168
std::vector< T > _components
Tableau dense des composants (contigu, cache-friendly).
Definition ComponentPool.h:192
T & get(Entity entity)
Accède au composant d'une entité (lecture-écriture).
Definition ComponentPool.h:138
bool empty() const
Definition ComponentPool.h:160
std::size_t size() const
Definition ComponentPool.h:155
void add(Entity entity, const T &component)
Attache un composant à une entité.
Definition ComponentPool.h:72
bool has(Entity entity) const
Indique si une entité possède un composant de ce type.
Definition ComponentPool.h:122
void remove(Entity entity)
Retire le composant d'une entité (swap-and-pop).
Definition ComponentPool.h:86
bool removeIfPresent(Entity entity) override
Retire le composant d'une entité s'il existe (sans précondition).
Definition ComponentPool.h:109
Interface type-effacée d'une pool de composants.
Definition ComponentPool.h:26
virtual ~IComponentPool()=default
virtual bool removeIfPresent(Entity entity)=0
Retire le composant d'une entité s'il existe.
Espace de noms du moteur et de la logique de jeu.
Definition Bootstrap.h:9
Handle générationnel identifiant une entité de l'ECS.
Definition Entity.h:24
Index index
Definition Entity.h:33
std::uint32_t Index
Type des index d'entité.
Definition Entity.h:26