Flecs v3.2
A fast entity component system (ECS) for C & C++
Loading...
Searching...
No Matches
impl.hpp
Go to the documentation of this file.
1
6#pragma once
7
8namespace flecs {
9
10inline units::units(flecs::world& world) {
11 /* Import C module */
12 FlecsUnitsImport(world);
13
14 /* Bridge between C++ types and flecs.units entities */
15 world.module<units>();
16
17 // Initialize world.entity(prefixes) scope
18 world.entity<Prefixes>("::flecs::units::prefixes");
19
20 // Initialize prefixes
21 world.entity<Yocto>("::flecs::units::prefixes::Yocto");
22 world.entity<Zepto>("::flecs::units::prefixes::Zepto");
23 world.entity<Atto>("::flecs::units::prefixes::Atto");
24 world.entity<Femto>("::flecs::units::prefixes::Femto");
25 world.entity<Pico>("::flecs::units::prefixes::Pico");
26 world.entity<Nano>("::flecs::units::prefixes::Nano");
27 world.entity<Micro>("::flecs::units::prefixes::Micro");
28 world.entity<Milli>("::flecs::units::prefixes::Milli");
29 world.entity<Centi>("::flecs::units::prefixes::Centi");
30 world.entity<Deci>("::flecs::units::prefixes::Deci");
31 world.entity<Deca>("::flecs::units::prefixes::Deca");
32 world.entity<Hecto>("::flecs::units::prefixes::Hecto");
33 world.entity<Kilo>("::flecs::units::prefixes::Kilo");
34 world.entity<Mega>("::flecs::units::prefixes::Mega");
35 world.entity<Giga>("::flecs::units::prefixes::Giga");
36 world.entity<Tera>("::flecs::units::prefixes::Tera");
37 world.entity<Peta>("::flecs::units::prefixes::Peta");
38 world.entity<Exa>("::flecs::units::prefixes::Exa");
39 world.entity<Zetta>("::flecs::units::prefixes::Zetta");
40 world.entity<Yotta>("::flecs::units::prefixes::Yotta");
41 world.entity<Kibi>("::flecs::units::prefixes::Kibi");
42 world.entity<Mebi>("::flecs::units::prefixes::Mebi");
43 world.entity<Gibi>("::flecs::units::prefixes::Gibi");
44 world.entity<Tebi>("::flecs::units::prefixes::Tebi");
45 world.entity<Pebi>("::flecs::units::prefixes::Pebi");
46 world.entity<Exbi>("::flecs::units::prefixes::Exbi");
47 world.entity<Zebi>("::flecs::units::prefixes::Zebi");
48 world.entity<Yobi>("::flecs::units::prefixes::Yobi");
49
50 // Initialize quantities
51 world.entity<Duration>("::flecs::units::Duration");
52 world.entity<Time>("::flecs::units::Time");
53 world.entity<Mass>("::flecs::units::Mass");
54 world.entity<Force>("::flecs::units::Force");
55 world.entity<ElectricCurrent>("::flecs::units::ElectricCurrent");
56 world.entity<Amount>("::flecs::units::Amount");
57 world.entity<LuminousIntensity>("::flecs::units::LuminousIntensity");
58 world.entity<Length>("::flecs::units::Length");
59 world.entity<Pressure>("::flecs::units::Pressure");
60 world.entity<Speed>("::flecs::units::Speed");
61 world.entity<Temperature>("::flecs::units::Temperature");
62 world.entity<Data>("::flecs::units::Data");
63 world.entity<DataRate>("::flecs::units::DataRate");
64 world.entity<Angle>("::flecs::units::Angle");
65 world.entity<Frequency>("::flecs::units::Frequency");
66 world.entity<Uri>("::flecs::units::Uri");
67
68 // Initialize duration units
69 world.entity<duration::PicoSeconds>(
70 "::flecs::units::Duration::PicoSeconds");
71 world.entity<duration::NanoSeconds>(
72 "::flecs::units::Duration::NanoSeconds");
73 world.entity<duration::MicroSeconds>(
74 "::flecs::units::Duration::MicroSeconds");
75 world.entity<duration::MilliSeconds>(
76 "::flecs::units::Duration::MilliSeconds");
77 world.entity<duration::Seconds>(
78 "::flecs::units::Duration::Seconds");
79 world.entity<duration::Minutes>(
80 "::flecs::units::Duration::Minutes");
81 world.entity<duration::Hours>(
82 "::flecs::units::Duration::Hours");
83 world.entity<duration::Days>(
84 "::flecs::units::Duration::Days");
85
86 // Initialize time units
87 world.entity<time::Date>("::flecs::units::Time::Date");
88
89 // Initialize mass units
90 world.entity<mass::Grams>("::flecs::units::Mass::Grams");
91 world.entity<mass::KiloGrams>("::flecs::units::Mass::KiloGrams");
92
93 // Initialize current units
94 world.entity<electric_current::Ampere>
95 ("::flecs::units::ElectricCurrent::Ampere");
96
97 // Initialize amount units
98 world.entity<amount::Mole>("::flecs::units::Amount::Mole");
99
100 // Initialize luminous intensity units
101 world.entity<luminous_intensity::Candela>(
102 "::flecs::units::LuminousIntensity::Candela");
103
104 // Initialize force units
105 world.entity<force::Newton>("::flecs::units::Force::Newton");
106
107 // Initialize length units
108 world.entity<length::Meters>("::flecs::units::Length::Meters");
109 world.entity<length::PicoMeters>("::flecs::units::Length::PicoMeters");
110 world.entity<length::NanoMeters>("::flecs::units::Length::NanoMeters");
111 world.entity<length::MicroMeters>("::flecs::units::Length::MicroMeters");
112 world.entity<length::MilliMeters>("::flecs::units::Length::MilliMeters");
113 world.entity<length::CentiMeters>("::flecs::units::Length::CentiMeters");
114 world.entity<length::KiloMeters>("::flecs::units::Length::KiloMeters");
115 world.entity<length::Miles>("::flecs::units::Length::Miles");
116 world.entity<length::Pixels>("::flecs::units::Length::Pixels");
117
118 // Initialize pressure units
119 world.entity<pressure::Pascal>("::flecs::units::Pressure::Pascal");
120 world.entity<pressure::Bar>("::flecs::units::Pressure::Bar");
121
122 // Initialize speed units
123 world.entity<speed::MetersPerSecond>(
124 "::flecs::units::Speed::MetersPerSecond");
125 world.entity<speed::KiloMetersPerSecond>(
126 "::flecs::units::Speed::KiloMetersPerSecond");
127 world.entity<speed::KiloMetersPerHour>(
128 "::flecs::units::Speed::KiloMetersPerHour");
129 world.entity<speed::MilesPerHour>(
130 "::flecs::units::Speed::MilesPerHour");
131
132 // Initialize temperature units
133 world.entity<temperature::Kelvin>(
134 "::flecs::units::Temperature::Kelvin");
135 world.entity<temperature::Celsius>(
136 "::flecs::units::Temperature::Celsius");
137 world.entity<temperature::Fahrenheit>(
138 "::flecs::units::Temperature::Fahrenheit");
139
140 // Initialize data units
141 world.entity<data::Bits>(
142 "::flecs::units::Data::Bits");
143 world.entity<data::KiloBits>(
144 "::flecs::units::Data::KiloBits");
145 world.entity<data::MegaBits>(
146 "::flecs::units::Data::MegaBits");
147 world.entity<data::GigaBits>(
148 "::flecs::units::Data::GigaBits");
149 world.entity<data::Bytes>(
150 "::flecs::units::Data::Bytes");
151 world.entity<data::KiloBytes>(
152 "::flecs::units::Data::KiloBytes");
153 world.entity<data::MegaBytes>(
154 "::flecs::units::Data::MegaBytes");
155 world.entity<data::GigaBytes>(
156 "::flecs::units::Data::GigaBytes");
157 world.entity<data::KibiBytes>(
158 "::flecs::units::Data::KibiBytes");
159 world.entity<data::MebiBytes>(
160 "::flecs::units::Data::MebiBytes");
161 world.entity<data::GibiBytes>(
162 "::flecs::units::Data::GibiBytes");
163
164 // Initialize datarate units
165 world.entity<datarate::BitsPerSecond>(
166 "::flecs::units::DataRate::BitsPerSecond");
167 world.entity<datarate::KiloBitsPerSecond>(
168 "::flecs::units::DataRate::KiloBitsPerSecond");
169 world.entity<datarate::MegaBitsPerSecond>(
170 "::flecs::units::DataRate::MegaBitsPerSecond");
171 world.entity<datarate::GigaBitsPerSecond>(
172 "::flecs::units::DataRate::GigaBitsPerSecond");
173 world.entity<datarate::BytesPerSecond>(
174 "::flecs::units::DataRate::BytesPerSecond");
175 world.entity<datarate::KiloBytesPerSecond>(
176 "::flecs::units::DataRate::KiloBytesPerSecond");
177 world.entity<datarate::MegaBytesPerSecond>(
178 "::flecs::units::DataRate::MegaBytesPerSecond");
179 world.entity<datarate::GigaBytesPerSecond>(
180 "::flecs::units::DataRate::GigaBytesPerSecond");
181
182 // Initialize hertz units
183 world.entity<frequency::Hertz>(
184 "::flecs::units::Frequency::Hertz");
185 world.entity<frequency::KiloHertz>(
186 "::flecs::units::Frequency::KiloHertz");
187 world.entity<frequency::MegaHertz>(
188 "::flecs::units::Frequency::MegaHertz");
189 world.entity<frequency::GigaHertz>(
190 "::flecs::units::Frequency::GigaHertz");
191
192 // Initialize uri units
193 world.entity<uri::Hyperlink>(
194 "::flecs::units::Uri::Hyperlink");
195 world.entity<uri::Image>(
196 "::flecs::units::Uri::Image");
197 world.entity<uri::File>(
198 "::flecs::units::Uri::File");
199
200 // Initialize angles
201 world.entity<angle::Radians>(
202 "::flecs::units::Angle::Radians");
203 world.entity<angle::Degrees>(
204 "::flecs::units::Angle::Degrees");
205
206 // Initialize percentage
207 world.entity<Percentage>("::flecs::units::Percentage");
208
209 // Initialize Bel
210 world.entity<Bel>("::flecs::units::Bel");
211 world.entity<DeciBel>("::flecs::units::DeciBel");
212}
213
214}
flecs::entity module(const char *name=nullptr) const
Define a module.
flecs::entity entity(Args &&... args) const
Create an entity.
The world.
Definition world.hpp:132