Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
rules.h
Go to the documentation of this file.
1
14#ifdef FLECS_RULES
15
24#ifndef FLECS_RULES_H
25#define FLECS_RULES_H
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
32#define ecs_rule(world, ...)\
33 ecs_rule_init(world, &(ecs_filter_desc_t) __VA_ARGS__ )
34
80FLECS_API
82 ecs_world_t *world,
83 const ecs_filter_desc_t *desc);
84
89FLECS_API
91 ecs_rule_t *rule);
92
99FLECS_API
101 const ecs_rule_t *rule);
102
108FLECS_API
110 const ecs_rule_t *rule);
111
120FLECS_API
122 const ecs_rule_t *rule,
123 const char *name);
124
131FLECS_API
133 const ecs_rule_t *rule,
134 int32_t var_id);
135
145FLECS_API
147 const ecs_rule_t *rule,
148 int32_t var_id);
149
160FLECS_API
161ecs_iter_t ecs_rule_iter(
162 const ecs_world_t *world,
163 const ecs_rule_t *rule);
164
169FLECS_API
171 ecs_iter_t *it);
172
178FLECS_API
180 ecs_iter_t *it);
181
191FLECS_API
193 const ecs_rule_t *rule);
194
203FLECS_API
205 const ecs_rule_t *rule,
206 const ecs_iter_t *it);
207
219FLECS_API
221 ecs_rule_t *rule,
222 ecs_iter_t *it,
223 const char *expr);
224
225#ifdef __cplusplus
226}
227#endif
228
229#endif // FLECS_RULES_H
230
233#endif // FLECS_RULES
FLECS_API int32_t ecs_rule_var_count(const ecs_rule_t *rule)
Return number of variables in rule.
FLECS_API const char * ecs_rule_var_name(const ecs_rule_t *rule, int32_t var_id)
Get variable name.
FLECS_API void ecs_rule_fini(ecs_rule_t *rule)
Delete a rule.
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 const ecs_filter_t * ecs_rule_get_filter(const ecs_rule_t *rule)
Obtain filter from rule.
FLECS_API bool ecs_rule_next(ecs_iter_t *it)
Progress rule iterator.
FLECS_API char * ecs_rule_str(const ecs_rule_t *rule)
Convert rule to a string.
FLECS_API bool ecs_rule_next_instanced(ecs_iter_t *it)
Progress instanced iterator.
FLECS_API ecs_iter_t ecs_rule_iter(const ecs_world_t *world, const ecs_rule_t *rule)
Iterate a rule.
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.
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 ecs_rule_t * ecs_rule_init(ecs_world_t *world, const ecs_filter_desc_t *desc)
Create a rule.
FLECS_API int32_t ecs_rule_find_var(const ecs_rule_t *rule, const char *name)
Find variable index.
struct ecs_rule_t ecs_rule_t
A rule is a query with advanced graph traversal features.
Definition flecs.h:416
struct ecs_world_t ecs_world_t
A world is the container for all ECS data and supporting features.
Definition flecs.h:362
Used with ecs_filter_init().
Definition flecs.h:998
Filters allow for ad-hoc quick filtering of entity tables.
Definition flecs.h:786