entity
Entity/Component System for C++
entity::component::zipped_component_windows< ComponentPoolTuple > Class Template Reference

Description

template<typename ComponentPoolTuple>
class entity::component::zipped_component_windows< ComponentPoolTuple >

Definition at line 93 of file zip.hpp.

Public Types

typedef boost::fusion::result_of::as_vector< typename detail::component_windows_type< ComponentPoolTuple >::type >::type windows_type
 

Public Member Functions

std::size_t advance (entity e)
 
std::size_t count ()
 
windows_type get () const
 
std::size_t increment (entity e)
 
 zipped_component_windows (ComponentPoolTuple &&pools)
 

Member Function Documentation

template<typename ComponentPoolTuple >
std::size_t entity::component::zipped_component_windows< ComponentPoolTuple >::advance ( entity  e)

Definition at line 128 of file zip.hpp.

129  {
130  return boost::fusion::fold(
131  windows_,
132  0,
133  detail::sized_advance_window(e)
134  );
135  }
template<typename ComponentPoolTuple >
std::size_t entity::component::zipped_component_windows< ComponentPoolTuple >::count ( )

Definition at line 114 of file zip.hpp.

115  {
116  return boost::fusion::count(windows_);
117  }
template<typename ComponentPoolTuple >
windows_type entity::component::zipped_component_windows< ComponentPoolTuple >::get ( ) const

Definition at line 137 of file zip.hpp.

138  {
139  return windows_;
140  }
template<typename ComponentPoolTuple >
std::size_t entity::component::zipped_component_windows< ComponentPoolTuple >::increment ( entity  e)

Definition at line 119 of file zip.hpp.

120  {
121  return boost::fusion::fold(
122  windows_,
123  0,
124  detail::sized_increment_window(e)
125  );
126  }

Member Typedef Documentation

template<typename ComponentPoolTuple >
typedef boost::fusion::result_of::as_vector< typename detail::component_windows_type< ComponentPoolTuple >::type >::type entity::component::zipped_component_windows< ComponentPoolTuple >::windows_type

Definition at line 102 of file zip.hpp.

Constructor & Destructor Documentation

template<typename ComponentPoolTuple >
entity::component::zipped_component_windows< ComponentPoolTuple >::zipped_component_windows ( ComponentPoolTuple &&  pools)

Definition at line 104 of file zip.hpp.

105  {
106  windows_ = boost::fusion::as_vector(
107  boost::fusion::transform(
108  pools,
109  functional::get_window()
110  )
111  );
112  }