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
32struct untyped_ref;
33template <typename T>
34struct ref;
35
36namespace _
37{
38template <typename T, typename U = int>
39struct 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"
59#ifdef FLECS_SYSTEM
61#endif
62#ifdef FLECS_PIPELINE
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
85#endif
86#ifdef FLECS_ALERTS
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
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"
117#include "mixins/term/impl.hpp"
118#include "mixins/query/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
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_DOC
138#include "mixins/doc/impl.hpp"
139#endif
140#ifdef FLECS_REST
141#include "mixins/rest/impl.hpp"
142#endif
143#ifdef FLECS_META
144#include "mixins/meta/impl.hpp"
145#endif
146#ifdef FLECS_UNITS
147#include "mixins/units/impl.hpp"
148#endif
149#ifdef FLECS_STATS
150#include "mixins/stats/impl.hpp"
151#endif
152#ifdef FLECS_METRICS
154#endif
155#ifdef FLECS_ALERTS
156#include "mixins/alerts/impl.hpp"
157#endif
158#ifdef FLECS_SCRIPT
159#include "mixins/script/impl.hpp"
160#endif
161
162#include "impl/field.hpp"
163#include "impl/iter.hpp"
164#include "impl/world.hpp"
165
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.