Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
rules.h File Reference

Rule query engine addon. More...

Go to the source code of this file.

Macros

#define ecs_rule(world, ...)    ecs_rule_init(world, &(ecs_filter_desc_t) __VA_ARGS__ )
 Convenience macro for rule creation.
 

Functions

FLECS_API ecs_rule_tecs_rule_init (ecs_world_t *world, const ecs_filter_desc_t *desc)
 Create a rule.
 
FLECS_API void ecs_rule_fini (ecs_rule_t *rule)
 Delete a rule.
 
FLECS_API const ecs_filter_tecs_rule_get_filter (const ecs_rule_t *rule)
 Obtain filter from rule.
 
FLECS_API int32_t ecs_rule_var_count (const ecs_rule_t *rule)
 Return number of variables in rule.
 
FLECS_API int32_t ecs_rule_find_var (const ecs_rule_t *rule, const char *name)
 Find variable index.
 
FLECS_API const char * ecs_rule_var_name (const ecs_rule_t *rule, int32_t var_id)
 Get variable name.
 
FLECS_API bool ecs_rule_var_is_entity (const ecs_rule_t *rule, int32_t var_id)
 Test if variable is an entity.
 
FLECS_API ecs_iter_t ecs_rule_iter (const ecs_world_t *world, const ecs_rule_t *rule)
 Iterate a rule.
 
FLECS_API bool ecs_rule_next (ecs_iter_t *it)
 Progress rule iterator.
 
FLECS_API bool ecs_rule_next_instanced (ecs_iter_t *it)
 Progress instanced iterator.
 
FLECS_API char * ecs_rule_str (const ecs_rule_t *rule)
 Convert rule to a string.
 
FLECS_API char * ecs_rule_str_w_profile (const ecs_rule_t *rule, const ecs_iter_t *it)
 Convert rule to string with profile.
 
FLECS_API const char * ecs_rule_parse_vars (ecs_rule_t *rule, ecs_iter_t *it, const char *expr)
 Populate variables from key-value string.
 

Detailed Description

Rule query engine addon.

Rules are advanced queries that in addition to the capabilities of regular queries and filters have the following features:

  • query for all components of an entity (vs. all entities for a component)
  • query for all relationship pairs of an entity
  • support for query variables that are resolved at evaluation time
  • automatic traversal of transitive relationships

Definition in file rules.h.