Flecs v3.2
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
32namespace _
33{
34template <typename T, typename U = int>
35struct cpp_type;
36
37template <typename Func, typename ... Components>
38struct each_delegate;
39
40} // namespace _
41} // namespace flecs
42
43// Types imported from C API
44#include "c_types.hpp"
45
46// C++ utilities
47#include "utils/utils.hpp"
48
49// Mixin forward declarations
50#include "mixins/id/decl.hpp"
51#include "mixins/term/decl.hpp"
53#include "mixins/event/decl.hpp"
54#include "mixins/query/decl.hpp"
56#ifdef FLECS_SYSTEM
58#endif
59#ifdef FLECS_PIPELINE
61#endif
62#ifdef FLECS_TIMER
63#include "mixins/timer/decl.hpp"
64#endif
65#ifdef FLECS_SNAPSHOT
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_RULES
75#include "mixins/rule/decl.hpp"
76#endif
77#ifdef FLECS_META
78#include "mixins/meta/decl.hpp"
79#endif
80#ifdef FLECS_UNITS
81#include "mixins/units/decl.hpp"
82#endif
83#ifdef FLECS_MONITOR
85#endif
86#ifdef FLECS_METRICS
88#endif
89#ifdef FLECS_ALERTS
91#endif
92#ifdef FLECS_JSON
93#include "mixins/json/decl.hpp"
94#endif
95#ifdef FLECS_APP
96#include "mixins/app/decl.hpp"
97#endif
98
99#include "log.hpp"
100#include "pair.hpp"
101#include "lifecycle_traits.hpp"
102#include "ref.hpp"
103#include "world.hpp"
104#include "field.hpp"
105#include "iter.hpp"
106#include "entity.hpp"
107#include "delegate.hpp"
108#include "utils/iterable.hpp"
109#include "component.hpp"
110#include "type.hpp"
111#include "table.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/filter/impl.hpp"
119#include "mixins/query/impl.hpp"
121#include "mixins/event/impl.hpp"
122#include "mixins/enum/impl.hpp"
123#ifdef FLECS_MODULE
124#include "mixins/module/impl.hpp"
125#endif
126#ifdef FLECS_SYSTEM
127#include "mixins/system/impl.hpp"
128#endif
129#ifdef FLECS_PIPELINE
131#endif
132#ifdef FLECS_TIMER
133#include "mixins/timer/impl.hpp"
134#endif
135#ifdef FLECS_SNAPSHOT
137#endif
138#ifdef FLECS_DOC
139#include "mixins/doc/impl.hpp"
140#endif
141#ifdef FLECS_DOC
142#include "mixins/doc/impl.hpp"
143#endif
144#ifdef FLECS_REST
145#include "mixins/rest/impl.hpp"
146#endif
147#ifdef FLECS_RULES
148#include "mixins/rule/impl.hpp"
149#endif
150#ifdef FLECS_META
151#include "mixins/meta/impl.hpp"
152#endif
153#ifdef FLECS_UNITS
154#include "mixins/units/impl.hpp"
155#endif
156#ifdef FLECS_MONITOR
158#endif
159#ifdef FLECS_METRICS
161#endif
162#ifdef FLECS_ALERTS
163#include "mixins/alerts/impl.hpp"
164#endif
165
166#include "impl/field.hpp"
167#include "impl/iter.hpp"
168#include "impl/world.hpp"
169
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.
Filter declarations.
Filter implementation.
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.
Monitor module declarations.
Monitor 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.
Rule declarations.
Rule implementation.
Snapshot module declarations.
Snapshot 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.