SDEngine
Game Engine
Loading...
Searching...
No Matches
sd::ViewImpl< ExtraComponents, Components >::Iterator Struct Reference

#include <EntityManager.hpp>

+ Collaboration diagram for sd::ViewImpl< ExtraComponents, Components >::Iterator:

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = std::tuple< Entity, Components &... >
 
using difference_type = std::ptrdiff_t
 
using pointer = void
 
using reference = value_type
 

Public Member Functions

 Iterator (manager_type &em, const ArenaVec< Entity > *dense_entities, USize idx)
 
Iteratoroperator++ ()
 
bool operator== (const Iterator &other) const
 
bool operator!= (const Iterator &other) const
 
std::tuple< Entity, Components &... > operator* () const
 
void next ()
 
bool is_valid () const
 

Public Attributes

manager_typemanager
 
const ArenaVec< Entity > * entities
 
USize index
 

Member Typedef Documentation

◆ difference_type

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
using sd::ViewImpl< ExtraComponents, Components >::Iterator::difference_type = std::ptrdiff_t

◆ iterator_category

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
using sd::ViewImpl< ExtraComponents, Components >::Iterator::iterator_category = std::forward_iterator_tag

◆ pointer

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
using sd::ViewImpl< ExtraComponents, Components >::Iterator::pointer = void

◆ reference

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
using sd::ViewImpl< ExtraComponents, Components >::Iterator::reference = value_type

◆ value_type

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
using sd::ViewImpl< ExtraComponents, Components >::Iterator::value_type = std::tuple<Entity, Components&...>

Constructor & Destructor Documentation

◆ Iterator()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
ViewImpl::Iterator::Iterator ( manager_type em,
const ArenaVec< Entity > *  dense_entities,
USize  idx 
)

Member Function Documentation

◆ is_valid()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
bool ViewImpl::Iterator::is_valid ( ) const

◆ next()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
void ViewImpl::Iterator::next ( )

◆ operator!=()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
bool sd::ViewImpl< ExtraComponents, Components >::Iterator::operator!= ( const Iterator other) const
inline

◆ operator*()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
std::tuple< Entity, Components &... > ViewImpl::Iterator::operator* ( ) const

◆ operator++()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
ViewImpl< ExtraComponents, Components... >::Iterator & ViewImpl::Iterator::operator++ ( )

◆ operator==()

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
bool sd::ViewImpl< ExtraComponents, Components >::Iterator::operator== ( const Iterator other) const
inline

Member Data Documentation

◆ entities

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
const ArenaVec<Entity>* sd::ViewImpl< ExtraComponents, Components >::Iterator::entities

◆ index

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
USize sd::ViewImpl< ExtraComponents, Components >::Iterator::index

◆ manager

template<typename ExtraComponents = ComponentGroup<>, typename... Components>
manager_type& sd::ViewImpl< ExtraComponents, Components >::Iterator::manager

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