entity
Entity/Component System for C++
entity::component Namespace Reference

Namespaces

 detail
 

Classes

class  creation_queue
 
class  dense_pool
 
class  destruction_queue
 
struct  is_zipped_component_tuple
 
struct  is_zipped_component_tuple< zipped_component_windows< ComponentTuple > >
 
class  saturated_pool
 
class  sparse_pool
 
class  zipped_component_windows
 

Functions

template<std::size_t idx, typename ZippedComponentWindows >
std::enable_if< is_zipped_component_tuple< ZippedComponentWindows >::value, typename boost::fusion::result_of::value_at_c< typename ZippedComponentWindows::windows_type, idx >::type::value_type & >::type get (ZippedComponentWindows const &windows)
 
template<typename... Pools>
boost::fusion::vector< Pools &...> tie (Pools &...pools)
 
template<typename... Pools>
auto zip (Pools &...pools) -> decltype(zip_from_tuple(tie(pools...)))
 
template<typename ComponentPoolTuple >
zipped_component_windows< ComponentPoolTuple > zip_from_tuple (ComponentPoolTuple pools)
 

Function Documentation

template<std::size_t idx, typename ZippedComponentWindows >
std::enable_if< is_zipped_component_tuple<ZippedComponentWindows>::value, typename boost::fusion::result_of::value_at_c< typename ZippedComponentWindows::windows_type, idx >::type::value_type& >::type entity::component::get ( ZippedComponentWindows const &  windows)

Definition at line 169 of file zip.hpp.

170  {
171  return boost::fusion::at_c<idx>(windows.get()).get();
172  }
template<typename... Pools>
boost::fusion::vector<Pools&...> entity::component::tie ( Pools &...  pools)

Definition at line 28 of file tie.hpp.

Referenced by zip().

29  {
30  return boost::fusion::vector<Pools&...>(pools...);
31  }
template<typename... Pools>
auto entity::component::zip ( Pools &...  pools) -> decltype(zip_from_tuple(tie(pools...)))

Definition at line 186 of file zip.hpp.

References tie(), and zip_from_tuple().

187  {
188  return zip_from_tuple(tie(pools...));
189  }
boost::fusion::vector< Pools &...> tie(Pools &...pools)
Definition: tie.hpp:28
zipped_component_windows< ComponentPoolTuple > zip_from_tuple(ComponentPoolTuple pools)
Definition: zip.hpp:175
template<typename ComponentPoolTuple >
zipped_component_windows<ComponentPoolTuple> entity::component::zip_from_tuple ( ComponentPoolTuple  pools)

Definition at line 175 of file zip.hpp.

Referenced by zip().

176  {
177  return zipped_component_windows<
178  ComponentPoolTuple
179  >(std::move(pools));
180  }