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

| 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>
30 struct component;
31
32template <typename T>
33struct ref;
34
35namespace _
36{
37template <typename T, typename U = int>
38 struct type;
39
40template <typename Func, typename ... Components>
41 struct 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"
57#include "mixins/observer/decl.hpp"
58#ifdef FLECS_SYSTEM
59#include "mixins/system/decl.hpp"
60#endif
61#ifdef FLECS_PIPELINE
62#include "mixins/pipeline/decl.hpp"
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
83#include "mixins/metrics/decl.hpp"
84#endif
85#ifdef FLECS_ALERTS
86#include "mixins/alerts/decl.hpp"
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
95#include "mixins/script/decl.hpp"
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"
115#include "mixins/component/impl.hpp"
116#include "mixins/term/impl.hpp"
117#include "mixins/query/impl.hpp"
118#include "mixins/observer/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
128#include "mixins/pipeline/impl.hpp"
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
152#include "mixins/metrics/impl.hpp"
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
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.
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 speedup 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
Monitor module implementation.
flecs::_::each_delegate
Definition flecs.hpp:41
flecs::_::type
Definition flecs.hpp:38
flecs::component
Component class.
Definition flecs.hpp:30
flecs::ref
Component reference.
Definition ref.hpp:23
flecs::world::entity
flecs::entity entity(Args &&... args) const
Create an entity.
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.