Flecs: flecs::iterable< Components > Struct Template Reference
Description: A fast entity component system (ECS) for C & C++

| Flecs v4.0 A fast entity component system (ECS) for C & C++

Loading...
Searching...
No Matches
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
flecs::iterable< Components > Struct Template Referenceabstract

## Public Member Functions
template<typename Func >
void | each (Func &&func) const
| Each iterator.
template<typename Func >
void | run (Func &&func) const
| Run iterator.
template<typename Func >
flecs::entity | find (Func &&func) const
iter_iterable< Components... > | iter (flecs::world_t *world=nullptr) const
| Create iterator.
iter_iterable< Components... > | iter (flecs::iter &iter) const
| Create iterator.
iter_iterable< Components... > | iter (flecs::entity e) const
| Create iterator.
page_iterable< Components... > | page (int32_t offset, int32_t limit)
| Page iterator.
worker_iterable< Components... > | worker (int32_t index, int32_t count)
| Worker iterator.
int32_t | count () const
| Return number of entities matched by iterable.
bool | is_true () const
| Return whether iterable has any matches.
flecs::entity | first () const
| Return first entity matched by iterable.
iter_iterable< Components... > | set_var (int var_id, flecs::entity_t value)
iter_iterable< Components... > | set_var (const char *name, flecs::entity_t value)
iter_iterable< Components... > | set_var (const char *name, flecs::table_t *value)
iter_iterable< Components... > | set_var (const char *name, ecs_table_range_t value)
iter_iterable< Components... > | set_var (const char *name, flecs::table_range value)
iter_iterable< Components... > | set_group (uint64_t group_id)
template<typename Group >
iter_iterable< Components... > | set_group ()

## Protected Member Functions
virtual ecs_iter_t | get_iter (flecs::world_t *stage) const =0
virtual ecs_iter_next_action_t | next_action () const =0

## Protected Attributes
friend | iter_iterable< Components... >
friend | page_iterable< Components... >
friend | worker_iterable< Components... >

## Detailed Description

template<typename ... Components>
struct flecs::iterable< Components >

Definition at line 18 of file iterable.hpp.

## Constructor & Destructor Documentation

## ◆ ~iterable()

template<typename ... Components>

virtual flecs::iterable< Components >::~iterable | ( |  | ) |
| inlinevirtual

Definition at line 144 of file iterable.hpp.

## Member Function Documentation

## ◆ count()

template<typename ... Components>

int32_t flecs::iterable< Components >::count | ( |  | ) | const
| inline

Return number of entities matched by iterable.

Definition at line 99 of file iterable.hpp.

## ◆ each()

template<typename ... Components>
template<typename Func >

void flecs::iterable< Components >::each | ( | Func && | func | ) | const
| inline

Each iterator.

The "each" iterator accepts a function that is invoked for each matching entity. The following function signatures are valid:

- func(flecs::entity e, Components& ...)
- func(flecs::iter& it, size_t index, Components& ....)
- func(Components& ...)

Definition at line 28 of file iterable.hpp.

## ◆ find()

template<typename ... Components>
template<typename Func >

flecs::entity flecs::iterable< Components >::find | ( | Func && | func | ) | const
| inline

Definition at line 48 of file iterable.hpp.

## ◆ first()

template<typename ... Components>

flecs::entity flecs::iterable< Components >::first | ( |  | ) | const
| inline

Return first entity matched by iterable.

Definition at line 109 of file iterable.hpp.

## ◆ is_true()

template<typename ... Components>

bool flecs::iterable< Components >::is_true | ( |  | ) | const
| inline

Return whether iterable has any matches.

Definition at line 104 of file iterable.hpp.

## ◆ iter() [1/3]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::iter | ( | flecs::entity | e | ) | const

Create iterator.

Create an iterator object that can be modified before iterating.

Definition at line 282 of file iterable.hpp.

## ◆ iter() [2/3]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::iter | ( | flecs::iter & | iter | ) | const

Create iterator.

Create an iterator object that can be modified before iterating.

Definition at line 276 of file iterable.hpp.

## ◆ iter() [3/3]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::iter | ( | flecs::world_t * | world = nullptr | ) | const

Create iterator.

Create an iterator object that can be modified before iterating.

Definition at line 270 of file iterable.hpp.

## ◆ page()

template<typename ... Components>

page_iterable< Components... > flecs::iterable< Components >::page | ( | int32_t | offset,
|  | int32_t | limit )

Page iterator.

Create an iterator that limits the returned entities with offset/limit.

Parameters

  offset | How many entities to skip.
  limit | The maximum number of entities to return.

Returns
  Iterable that can be iterated with each/iter.

Definition at line 313 of file iterable.hpp.

## ◆ run()

template<typename ... Components>
template<typename Func >

void flecs::iterable< Components >::run | ( | Func && | func | ) | const
| inline

Run iterator.

The "each" iterator accepts a function that is invoked once for a query with a valid iterator. The following signature is valid:

- func(flecs::iter&)

Definition at line 42 of file iterable.hpp.

## ◆ set_group() [1/2]

template<typename ... Components>
template<typename Group >

iter_iterable< Components... > flecs::iterable< Components >::set_group | ( |  | ) |
| inline

Definition at line 140 of file iterable.hpp.

## ◆ set_group() [2/2]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::set_group | ( | uint64_t | group_id | ) |
| inline

Definition at line 134 of file iterable.hpp.

## ◆ set_var() [1/5]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::set_var | ( | const char * | name,
|  | ecs_table_range_t | value )
| inline

Definition at line 125 of file iterable.hpp.

## ◆ set_var() [2/5]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::set_var | ( | const char * | name,
|  | flecs::entity_t | value )
| inline

Definition at line 117 of file iterable.hpp.

## ◆ set_var() [3/5]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::set_var | ( | const char * | name,
|  | flecs::table_range | value )
| inline

Definition at line 129 of file iterable.hpp.

## ◆ set_var() [4/5]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::set_var | ( | const char * | name,
|  | flecs::table_t * | value )
| inline

Definition at line 121 of file iterable.hpp.

## ◆ set_var() [5/5]

template<typename ... Components>

iter_iterable< Components... > flecs::iterable< Components >::set_var | ( | int | var_id,
|  | flecs::entity_t | value )
| inline

Definition at line 113 of file iterable.hpp.

## ◆ worker()

template<typename ... Components>

worker_iterable< Components... > flecs::iterable< Components >::worker | ( | int32_t | index,
|  | int32_t | count )

Worker iterator.

Create an iterator that divides the number of matched entities across a number of resources.

Parameters

  index | The index of the current resource.
  count | The total number of resources to divide entities between.

Returns
  Iterable that can be iterated with each/iter.

Definition at line 345 of file iterable.hpp.

## Member Data Documentation

## ◆ iter_iterable< Components... >

template<typename ... Components>

friend flecs::iterable< Components >::iter_iterable< Components... >
| protected

Definition at line 146 of file iterable.hpp.

## ◆ page_iterable< Components... >

template<typename ... Components>

friend flecs::iterable< Components >::page_iterable< Components... >
| protected

Definition at line 147 of file iterable.hpp.

## ◆ worker_iterable< Components... >

template<typename ... Components>

friend flecs::iterable< Components >::worker_iterable< Components... >
| protected

Definition at line 148 of file iterable.hpp.

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

- include/flecs/addons/cpp/utils/iterable.hpp