Flecs v4.0
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
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
 
virtual ecs_iter_next_action_t next_each_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 148 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 103 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& ...)

Each iterators are automatically instanced.

Definition at line 30 of file iterable.hpp.

◆ find()

template<typename ... Components>
template<typename Func >
flecs::entity flecs::iterable< Components >::find ( Func && func) const
inline

Definition at line 51 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 113 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 108 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 291 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 285 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 279 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
offsetHow many entities to skip.
limitThe maximum number of entities to return.
Returns
Iterable that can be iterated with each/iter.

Definition at line 326 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 45 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 144 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 138 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 129 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 121 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 133 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 125 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 117 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
indexThe index of the current resource.
countThe total number of resources to divide entities between.
Returns
Iterable that can be iterated with each/iter.

Definition at line 362 of file iterable.hpp.

Member Data Documentation

◆ iter_iterable< Components... >

template<typename ... Components>
friend flecs::iterable< Components >::iter_iterable< Components... >
protected

Definition at line 150 of file iterable.hpp.

◆ page_iterable< Components... >

template<typename ... Components>
friend flecs::iterable< Components >::page_iterable< Components... >
protected

Definition at line 151 of file iterable.hpp.

◆ worker_iterable< Components... >

template<typename ... Components>
friend flecs::iterable< Components >::worker_iterable< Components... >
protected

Definition at line 152 of file iterable.hpp.


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