Flecs: include/flecs/addons/cpp/flecs.hpp Source File
Description: A fast entity component system (ECS) for C & C++

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

Loading...
Searching...
No Matches
flecs.hpp
Go to the documentation of this file.
1
5
6#pragma once
7
8// STL includes
9#include <type_traits>
10
15
16namespace flecs
17{
18
19struct world;
20struct world_async_stage;
21struct iter;
22struct entity_view;
23struct entity;
24struct type;
25struct table;
26struct table_range;
27struct untyped_component;
28
29template <typename T>
30struct component;
31
32struct untyped_ref;
33template <typename T>
34struct ref;
35
36namespace _
37{
38template <typename T, typename U = int>
39 struct type;
40
41template <typename Func, typename ... Components>
42struct each_delegate;
43
44} // namespace _
45} // namespace flecs
46
47// Types imported from C API
48#include "c_types.hpp"
49
50// C++ utilities
51#include "utils/utils.hpp"
52
53// Mixin forward declarations
54#include "mixins/id/decl.hpp"
55#include "mixins/term/decl.hpp"
56#include "mixins/query/decl.hpp"
57#include "mixins/event/decl.hpp"
58#include "mixins/observer/decl.hpp"
59#ifdef FLECS_SYSTEM
60#include "mixins/system/decl.hpp"
61#endif
62#ifdef FLECS_PIPELINE
63#include "mixins/pipeline/decl.hpp"
64#endif
65#ifdef FLECS_TIMER
66#include "mixins/timer/decl.hpp"
67#endif
68#ifdef FLECS_DOC
69#include "mixins/doc/decl.hpp"
70#endif
71#ifdef FLECS_REST
72#include "mixins/rest/decl.hpp"
73#endif
74#ifdef FLECS_META
75#include "mixins/meta/decl.hpp"
76#endif
77#ifdef FLECS_UNITS
78#include "mixins/units/decl.hpp"
79#endif
80#ifdef FLECS_STATS
81#include "mixins/stats/decl.hpp"
82#endif
83#ifdef FLECS_METRICS
84#include "mixins/metrics/decl.hpp"
85#endif
86#ifdef FLECS_ALERTS
87#include "mixins/alerts/decl.hpp"
88#endif
89#ifdef FLECS_JSON
90#include "mixins/json/decl.hpp"
91#endif
92#ifdef FLECS_APP
93#include "mixins/app/decl.hpp"
94#endif
95#ifdef FLECS_SCRIPT
96#include "mixins/script/decl.hpp"
97#endif
98
99#include "log.hpp"
100#include "pair.hpp"
101#include "lifecycle_traits.hpp"
102#include "world.hpp"
103#include "field.hpp"
104#include "iter.hpp"
105#include "ref.hpp"
106#include "entity.hpp"
107#include "delegate.hpp"
108#include "component.hpp"
109#include "type.hpp"
110#include "table.hpp"
111#include "utils/iterable.hpp"
112
113// Mixin implementations
114#include "mixins/id/impl.hpp"
115#include "mixins/entity/impl.hpp"
116#include "mixins/component/impl.hpp"
117#include "mixins/term/impl.hpp"
118#include "mixins/query/impl.hpp"
119#include "mixins/observer/impl.hpp"
120#include "mixins/event/impl.hpp"
121#include "mixins/enum/impl.hpp"
122#ifdef FLECS_MODULE
123#include "mixins/module/impl.hpp"
124#endif
125#ifdef FLECS_SYSTEM
126#include "mixins/system/impl.hpp"
127#endif
128#ifdef FLECS_PIPELINE
129#include "mixins/pipeline/impl.hpp"
130#endif
131#ifdef FLECS_TIMER
132#include "mixins/timer/impl.hpp"
133#endif
134#ifdef FLECS_DOC
135#include "mixins/doc/impl.hpp"
136#endif
137#ifdef FLECS_REST
138#include "mixins/rest/impl.hpp"
139#endif
140#ifdef FLECS_META
141#include "mixins/meta/impl.hpp"
142#endif
143#ifdef FLECS_UNITS
144#include "mixins/units/impl.hpp"
145#endif
146#ifdef FLECS_STATS
147#include "mixins/stats/impl.hpp"
148#endif
149#ifdef FLECS_METRICS
150#include "mixins/metrics/impl.hpp"
151#endif
152#ifdef FLECS_ALERTS
153#include "mixins/alerts/impl.hpp"
154#endif
155#ifdef FLECS_SCRIPT
156#include "mixins/script/impl.hpp"
157#endif
158
159#include "impl/field.hpp"
160#include "impl/iter.hpp"
161#include "impl/world.hpp"
162
170
178
decl.hpp
Alert declarations.
impl.hpp
Alerts module implementation.
decl.hpp
App addon declarations.
c_types.hpp
Aliases for types/constants from C API.
impl.hpp
Component mixin implementation.
component.hpp
Registering/obtaining info from components.
delegate.hpp
Wrappers around C++ functions that provide callbacks for C APIs.
decl.hpp
Doc mixin declarations.
impl.hpp
Doc mixin implementation.
impl.hpp
Entity implementation.
entity.hpp
Entity class.
impl.hpp
Enum implementation.
decl.hpp
Event declarations.
impl.hpp
Event implementation.
field.hpp
Wrapper classes for fields returned by flecs::iter.
decl.hpp
ID class.
impl.hpp
ID class implementation.
field.hpp
Field implementation.
iter.hpp
Iterator implementation.
world.hpp
World implementation.
iter.hpp
Wrapper classes for ecs_iter_t and component arrays.
iterable.hpp
Base class for iterable objects, like queries.
decl.hpp
JSON addon declarations.
lifecycle_traits.hpp
Utilities for discovering and registering component lifecycle hooks.
log.hpp
Logging functions.
decl.hpp
Meta declarations.
impl.hpp
Meta implementation.
decl.hpp
Metrics declarations.
impl.hpp
Metrics module implementation.
impl.hpp
Module implementation.
flecs::_
Int to enum.
Definition component.hpp:18
decl.hpp
Observer declarations.
impl.hpp
Observer implementation.
pair.hpp
Utilities for working with compile-time pairs.
decl.hpp
Pipeline module declarations.
impl.hpp
Pipeline module implementation.
decl.hpp
Query declarations.
impl.hpp
Query implementation.
ref.hpp
Class that caches data to speed up get operations.
decl.hpp
Rest module declarations.
impl.hpp
Rest module implementation.
decl.hpp
Script declarations.
impl.hpp
Script implementation.
decl.hpp
Stats module declarations.
impl.hpp
Stats module implementation.
flecs::_::each_delegate
Definition delegate.hpp:220
flecs::_::type
Definition flecs.hpp:39
flecs::component
Component class.
Definition component.hpp:394
flecs::entity_view
Entity view.
Definition entity_view.hpp:30
flecs::entity
Entity.
Definition entity.hpp:30
flecs::iter
Class for iterating over query results.
Definition iter.hpp:68
flecs::ref
Component reference.
Definition ref.hpp:108
flecs::table_range
Table range.
Definition table.hpp:449
flecs::table
Table.
Definition table.hpp:23
flecs::type
Type class.
Definition type.hpp:21
flecs::untyped_component
Untyped component class.
Definition component.hpp:263
flecs::untyped_ref
Untyped component reference.
Definition ref.hpp:22
flecs::world
The world.
Definition world.hpp:246
decl.hpp
System module declarations.
impl.hpp
System module implementation.
table.hpp
Direct access to table data.
decl.hpp
Term declarations.
impl.hpp
Term implementation.
decl.hpp
Timer module declarations.
impl.hpp
Timer module implementation.
type.hpp
Utility functions for ID vector.
decl.hpp
Units module declarations.
impl.hpp
Units module implementation.
utils.hpp
Flecs STL (FTL?).
world.hpp
World class.