JustAnotherDnDGame 0.1.0
Jeu de rôle tactique au d20, vue de dessus, en C++/Qt
Loading...
Searching...
No Matches
core::View< Components >::Iterator Class Reference

Itérateur avant sur les entités retenues par la vue. More...

#include <View.h>

Public Member Functions

 Iterator (const View *view, const std::vector< Entity > *driver, std::size_t index)
 Construit un itérateur positionné puis avancé sur la première entité valide.
bool operator!= (const Iterator &other) const
 Compare deux itérateurs par position.
Iteratoroperator++ ()
 Avance jusqu'à l'entité valide suivante.
std::tuple< Entity, Components &... > operator* () const
 Déréférence l'itérateur sur l'entité courante et ses composants.

Private Member Functions

void skipToMatch ()
 Avance l'index sur la prochaine entité possédant tous les composants.

Private Attributes

const View_view
const std::vector< Entity > * _driver
std::size_t _index

Detailed Description

template<typename... Components>
class core::View< Components >::Iterator

Itérateur avant sur les entités retenues par la vue.

Déréférencé, il fournit un std::tuple<Entity, Components&...> (handle puis références sur les composants), ce qui autorise la liaison structurée for (auto [entity, ...] : view).

Constructor & Destructor Documentation

◆ Iterator()

template<typename... Components>
core::View< Components >::Iterator::Iterator ( const View * view,
const std::vector< Entity > * driver,
std::size_t index )
inline

Construit un itérateur positionné puis avancé sur la première entité valide.

Parameters
viewVue parcourue.
driverTableau dense pilote (entités de la plus petite pool).
indexPosition de départ dans le tableau pilote.

Member Function Documentation

◆ operator!=()

template<typename... Components>
bool core::View< Components >::Iterator::operator!= ( const Iterator & other) const
inlinenodiscard

Compare deux itérateurs par position.

Parameters
otherItérateur à comparer.
Returns
true si les positions diffèrent (parcours non terminé).

◆ operator*()

template<typename... Components>
std::tuple< Entity, Components &... > core::View< Components >::Iterator::operator* ( ) const
inlinenodiscard

Déréférence l'itérateur sur l'entité courante et ses composants.

Returns
Un tuple { entité, références sur chaque composant }.

◆ operator++()

template<typename... Components>
Iterator & core::View< Components >::Iterator::operator++ ( )
inline

Avance jusqu'à l'entité valide suivante.

Returns
Une référence sur cet itérateur, avancé.

◆ skipToMatch()

template<typename... Components>
void core::View< Components >::Iterator::skipToMatch ( )
inlineprivate

Avance l'index sur la prochaine entité possédant tous les composants.

Member Data Documentation

◆ _driver

template<typename... Components>
const std::vector<Entity>* core::View< Components >::Iterator::_driver
private

◆ _index

template<typename... Components>
std::size_t core::View< Components >::Iterator::_index
private

◆ _view

template<typename... Components>
const View* core::View< Components >::Iterator::_view
private

The documentation for this class was generated from the following file:
  • /home/runner/work/JustAnotherDnDGame/JustAnotherDnDGame/Source/Core/Ecs/View.h