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