|
template<typename State , typename Rule , typename... Args> |
constexpr bool | Utopia::is_void_rule () |
| Helper function to check if the rule returns void
|
|
template<class Tuple , std::size_t... I> |
constexpr decltype(auto) | Utopia::make_tuple_from_tuple_impl (Tuple &&t, std::index_sequence< I... >) |
| Helper function to create a tuple from a tuple using an index sequence.
|
|
template<class Tuple > |
constexpr decltype(auto) | Utopia::make_tuple_from_tuple (Tuple &&t) |
| Helper function to create a tuple from a tuple.
|
|
template<Update mode, class Rule , class ContTarget , class... ContArgs, typename std::enable_if_t< mode==Update::sync, int > = 0, typename std::enable_if_t< impl::entity_t< ContTarget >::mode==Update::manual, int > = 0> |
void | Utopia::apply_rule (Rule &&rule, const ContTarget &cont_target, ContArgs &&... cont_args) |
| Sequential overload.
|
|
template<Update mode, class Rule , class ContTarget , class... ContArgs, typename std::enable_if_t< mode==Update::sync, int > = 0, typename std::enable_if_t< impl::entity_t< ContTarget >::mode==Update::manual, int > = 0> |
void | Utopia::apply_rule (const Utopia::ExecPolicy policy, Rule &&rule, const ContTarget &cont_target, ContArgs &&... cont_args) |
| Apply a rule synchronously to manually updated states.
|
|
template<Update mode, Shuffle shuffle = Shuffle::on, class Rule , class ContTarget , class... ContArgs, typename std::enable_if_t< mode==Update::async, int > = 0, typename std::enable_if_t< impl::entity_t< ContTarget >::mode==Update::manual, int > = 0, typename std::enable_if_t< shuffle==Shuffle::off, int > = 0> |
void | Utopia::apply_rule (Rule &&rule, const ContTarget &cont_target, ContArgs &&... cont_args) |
| Sequential case overload.
|
|
template<Update mode, Shuffle shuffle = Shuffle::on, class Rule , class ContTarget , class... ContArgs, typename std::enable_if_t< mode==Update::async, int > = 0, typename std::enable_if_t< impl::entity_t< ContTarget >::mode==Update::manual, int > = 0, typename std::enable_if_t< shuffle==Shuffle::off, int > = 0> |
void | Utopia::apply_rule (const Utopia::ExecPolicy policy, Rule &&rule, const ContTarget &cont_target, ContArgs &&... cont_args) |
| Apply a rule asynchronously to manually updated states.
|
|
template<Update mode, Shuffle shuffle = Shuffle::on, class Rule , class ContTarget , class RNG , class... ContArgs, typename std::enable_if_t< mode==Update::async, int > = 0, typename std::enable_if_t< impl::entity_t< ContTarget >::mode==Update::manual, int > = 0, typename std::enable_if_t< shuffle==Shuffle::on, int > = 0> |
void | Utopia::apply_rule (Rule &&rule, const ContTarget &cont_target, RNG &&rng, ContArgs &&... cont_args) |
| Sequential case overload.
|
|
template<Update mode, Shuffle shuffle = Shuffle::on, class Rule , class ContTarget , class RNG , class... ContArgs, typename std::enable_if_t< mode==Update::async, int > = 0, typename std::enable_if_t< impl::entity_t< ContTarget >::mode==Update::manual, int > = 0, typename std::enable_if_t< shuffle==Shuffle::on, int > = 0> |
void | Utopia::apply_rule (const Utopia::ExecPolicy policy, Rule &&rule, const ContTarget &cont_target, RNG &&rng, ContArgs &&... cont_args) |
| Apply a rule asynchronously and shuffled to manually updated states.
|
|
template<class Rule , class Container , bool sync = impl::entity_t<Container>::is_sync()> |
std::enable_if_t< sync, void > | Utopia::apply_rule (const Rule &rule, const Container &container) |
| Apply a rule synchronously on the state of all entities of a container.
|
|
template<bool shuffle = true, class Rule , class Container , bool sync = impl::entity_t<Container>::is_sync()> |
std::enable_if_t< not sync &¬ shuffle, void > | Utopia::apply_rule (const Rule &rule, const Container &container) |
| Apply a rule on asynchronous states without prior shuffling.
|
|
template<bool shuffle = true, class Rule , class Container , class RNG , bool sync = impl::entity_t<Container>::is_sync()> |
std::enable_if_t< not sync &&shuffle, void > | Utopia::apply_rule (const Rule &rule, const Container &container, RNG &&rng) |
| Apply a rule on asynchronous states with prior shuffling.
|
|