Shkyera Engine
Easy to use, game engine for Python
Loading...
Searching...
No Matches
shkyera::SparseSet< Component >::Iterator< IsConst > Class Template Reference

#include <SparseSet.hpp>

Public Types

using iterator_category = std::forward_iterator_tag
 
using reference = std::pair< Entity, std::conditional_t< IsConst, const Component &, Component & > >
 

Public Member Functions

 Iterator (typename std::conditional_t< IsConst, const std::vector< Entity > *, std::vector< Entity > * > entities, typename std::conditional_t< IsConst, const std::vector< Component > *, std::vector< Component > * > components, size_t index)
 
reference operator* () const
 
Iteratoroperator++ ()
 
Iterator operator++ (int)
 
bool operator== (const Iterator &other) const
 
bool operator!= (const Iterator &other) const
 

Private Attributes

std::conditional_t< IsConst, const std::vector< Entity > *, std::vector< Entity > * > _entities
 
std::conditional_t< IsConst, const std::vector< Component > *, std::vector< Component > * > _components
 
size_t _index
 

Member Typedef Documentation

◆ iterator_category

template<typename Component >
template<bool IsConst>
using shkyera::SparseSet< Component >::Iterator< IsConst >::iterator_category = std::forward_iterator_tag

◆ reference

template<typename Component >
template<bool IsConst>
using shkyera::SparseSet< Component >::Iterator< IsConst >::reference = std::pair<Entity, std::conditional_t<IsConst, const Component&, Component&> >

Constructor & Destructor Documentation

◆ Iterator()

template<typename Component >
template<bool IsConst>
shkyera::SparseSet< Component >::Iterator< IsConst >::Iterator ( typename std::conditional_t< IsConst, const std::vector< Entity > *, std::vector< Entity > * >  entities,
typename std::conditional_t< IsConst, const std::vector< Component > *, std::vector< Component > * >  components,
size_t  index 
)
inline

Member Function Documentation

◆ operator!=()

template<typename Component >
template<bool IsConst>
bool shkyera::SparseSet< Component >::Iterator< IsConst >::operator!= ( const Iterator< IsConst > &  other) const
inline

◆ operator*()

template<typename Component >
template<bool IsConst>
reference shkyera::SparseSet< Component >::Iterator< IsConst >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename Component >
template<bool IsConst>
Iterator & shkyera::SparseSet< Component >::Iterator< IsConst >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename Component >
template<bool IsConst>
Iterator shkyera::SparseSet< Component >::Iterator< IsConst >::operator++ ( int  )
inline

◆ operator==()

template<typename Component >
template<bool IsConst>
bool shkyera::SparseSet< Component >::Iterator< IsConst >::operator== ( const Iterator< IsConst > &  other) const
inline

Member Data Documentation

◆ _components

template<typename Component >
template<bool IsConst>
std::conditional_t<IsConst, const std::vector<Component>*, std::vector<Component>*> shkyera::SparseSet< Component >::Iterator< IsConst >::_components
private

◆ _entities

template<typename Component >
template<bool IsConst>
std::conditional_t<IsConst, const std::vector<Entity>*, std::vector<Entity>*> shkyera::SparseSet< Component >::Iterator< IsConst >::_entities
private

◆ _index

template<typename Component >
template<bool IsConst>
size_t shkyera::SparseSet< Component >::Iterator< IsConst >::_index
private

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