Flecs v3.1
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
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
194
195
196#ifdef __cplusplus
197}
198#endif
199
200#endif // FLECS_RULES_H
201
204#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 bool ecs_rule_next_instanced(ecs_iter_t *it)
Progress instanced iterator.
FLECS_API char * ecs_rule_str(ecs_rule_t *rule)
Convert rule to a string.
FLECS_API ecs_iter_t ecs_rule_iter(const ecs_world_t *world, const ecs_rule_t *rule)
Iterate a rule.
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 implements a non-trivial filter.
Definition: flecs.h:244
struct ecs_world_t ecs_world_t
A world is the container for all ECS data and supporting features.
Definition: flecs.h:229
flecs::rule< Comps... > rule(flecs::rule_base &parent, Args &&... args) const
Create a subrule.
Used with ecs_filter_init.
Definition: flecs.h:770
Filters alllow for ad-hoc quick filtering of entity tables.
Definition: flecs.h:555