libdonut  2.3.2
Application framework for cross-platform game development in C++20
utilities.hpp
Go to the documentation of this file.
1 #ifndef DONUT_MODULES_FWD_UTILITIES_HPP
2 #define DONUT_MODULES_FWD_UTILITIES_HPP
3 
4 #include <cstddef> // std::size_t
5 #include <cstdint> // std::uint8_t
6 #include <glm/fwd.hpp> // glm::...
7 
8 namespace donut {
9 
10 template <std::size_t InitialResolution, std::size_t Padding>
11 class AtlasPacker;
12 
13 namespace base64 {}
14 
15 class Color;
16 
17 class File;
18 
19 enum class FilesystemMountPriority : int;
20 struct FilesystemOptions;
21 class Filesystem;
22 
23 struct Monostate;
24 
25 namespace json {
26 
27 struct SourceLocation;
28 struct Error;
29 using Null = Monostate;
30 using Boolean = bool;
31 using Number = double;
32 class Object;
33 class Array;
34 class Value;
35 template <typename T>
36 struct Serializer;
37 template <typename T>
38 struct Deserializer;
39 struct SerializationOptions;
40 struct DeserializationOptions;
41 struct SerializationState;
42 struct DeserializationState;
43 
44 } // namespace json
45 
46 class LinearMemoryResource;
47 template <typename T>
48 class LinearAllocator;
49 
50 template <typename... Ts>
51 class LinearBuffer;
52 
53 template <typename T>
54 class LooseQuadtree;
55 
56 namespace numbers {} // namespace numbers
57 
58 using glm::dmat2;
59 using glm::dmat3;
60 using glm::dmat4;
61 using glm::dvec2;
62 using glm::dvec3;
63 using glm::dvec4;
64 using glm::i16;
65 using glm::i16vec2;
66 using glm::i16vec3;
67 using glm::i16vec4;
68 using glm::i32;
69 using glm::i32vec2;
70 using glm::i32vec3;
71 using glm::i32vec4;
72 using glm::i64;
73 using glm::i64vec2;
74 using glm::i64vec3;
75 using glm::i64vec4;
76 using glm::i8;
77 using glm::i8vec2;
78 using glm::i8vec3;
79 using glm::i8vec4;
80 using glm::ivec2;
81 using glm::ivec3;
82 using glm::ivec4;
83 using glm::length_t;
84 using glm::mat;
85 using glm::mat2;
86 using glm::mat3;
87 using glm::mat4;
88 using glm::qua;
89 using glm::quat;
90 using glm::u16;
91 using glm::u16vec2;
92 using glm::u16vec3;
93 using glm::u16vec4;
94 using glm::u32;
95 using glm::u32vec2;
96 using glm::u32vec3;
97 using glm::u32vec4;
98 using glm::u64;
99 using glm::u64vec2;
100 using glm::u64vec3;
101 using glm::u64vec4;
102 using glm::u8;
103 using glm::u8vec2;
104 using glm::u8vec3;
105 using glm::u8vec4;
106 using glm::uvec2;
107 using glm::uvec3;
108 using glm::uvec4;
109 using glm::vec;
110 using glm::vec2;
111 using glm::vec3;
112 using glm::vec4;
113 
114 namespace obj {
115 
116 struct Error;
117 struct FaceVertex;
118 struct Face;
119 struct Group;
120 struct Object;
121 struct Scene;
122 
123 namespace mtl {
124 
125 enum class IlluminationModel : std::uint8_t;
126 struct Material;
127 struct Library;
128 
129 } // namespace mtl
130 } // namespace obj
131 
132 template <typename... Functors>
133 struct Overloaded;
134 
135 namespace random {
136 
137 class SplitMix64Engine;
139 
140 } // namespace random
141 
142 namespace reflection {}
143 
144 template <length_t L, typename T>
145 struct LineSegment;
146 
147 template <length_t L, typename T>
148 struct Sphere;
149 
150 template <typename T>
151 struct Circle;
152 
153 template <length_t L, typename T>
154 struct Capsule;
155 
156 template <length_t L, typename T>
157 struct Box;
158 
159 template <typename T>
160 struct Rectangle;
161 
162 template <typename T, typename Period>
163 class Time;
164 
165 namespace unicode {
166 
168 struct UTF8Sentinel;
169 template <typename It, typename Sentinel>
170 class UTF8Iterator;
171 class UTF8View;
172 
173 } // namespace unicode
174 
175 template <typename Handle, typename Deleter, Handle NullHandle>
176 class UniqueHandle;
177 
178 struct BadVariantAccess;
179 template <typename... Ts>
180 class Variant;
181 
182 namespace xml {
183 
184 struct Error;
185 struct Attribute;
186 struct Element;
187 struct Document;
188 
189 } // namespace xml
190 
191 } // namespace donut
192 
193 #endif
Time duration value wrapper.
Definition: Time.hpp:23
Generic nullable RAII resource handle with exclusive ownership of a resource that is automatically de...
Definition: UniqueHandle.hpp:21
Tagged union value type that holds a value of one of the given types.
Definition: Variant.hpp:291
Implementation of the SplitMix64 pseudorandom number generator that provides the API required for a s...
Definition: random.hpp:28
Implementation of the xoroshiro128++ pseudorandom number generator that provides the API required for...
Definition: random.hpp:98
Iterator type for decoding Unicode code points from a UTF-8 string, wrapping an existing iterator for...
Definition: unicode.hpp:193
Non-owning view type for decoding Unicode code points from a contiguous UTF-8 string.
Definition: unicode.hpp:331
Definition: base64.hpp:7
Definition: json.hpp:36
bool Boolean
JSON boolean type.
Definition: json.hpp:184
Monostate Null
JSON null type.
Definition: json.hpp:179
double Number
JSON number type.
Definition: json.hpp:194
Definition: math.hpp:18
IlluminationModel
Illumination model to use when rendering a specific Material.
Definition: obj.hpp:101
Definition: utilities.hpp:114
Definition: utilities.hpp:142
Definition: utilities.hpp:165
Definition: utilities.hpp:182
Definition: Application.hpp:9
FilesystemMountPriority
Mount priority for a newly mounted archive to a virtual Filesystem, relative to all previously mounte...
Definition: Filesystem.hpp:16
Exception type that is thrown on an attempt to erroneously access an inactive alternative of a Varian...
Definition: Variant.hpp:282
Generic axis-aligned box shape with minimum and maximum extents.
Definition: shapes.hpp:110
Generic capsule shape with a center line segment and radius.
Definition: shapes.hpp:91
Flat 2D circle shape with a center and radius.
Definition: shapes.hpp:63
Generic line segment between two points.
Definition: shapes.hpp:33
Visitor type for combining callable objects, such as lambdas, into an overload set.
Definition: Overloaded.hpp:13
Flat 2D axis-aligned rectangle shape with a position and size.
Definition: shapes.hpp:128
Generic sphere shape with a center and radius.
Definition: shapes.hpp:45
Exception type for errors originating from the OBJ API.
Definition: obj.hpp:18
Single vertex of a polygonal Face element.
Definition: obj.hpp:43
Face element forming a single polygon of FaceVertex vertices.
Definition: obj.hpp:52
Group containing polygonal Face elements within an Object.
Definition: obj.hpp:59
Object mesh containing Group elements within a Scene.
Definition: obj.hpp:68
Scene of Object elements defined by an OBJ file.
Definition: obj.hpp:76
Material library that stores the material properties for objects defined in a Scene.
Definition: obj.hpp:140
Material properties of an Object.
Definition: obj.hpp:118
Result of the encodeUTF8FromCodePoint() function.
Definition: unicode.hpp:123
Sentinel type for UTF8Iterator.
Definition: unicode.hpp:183
Named attribute of an Element with an optional value.
Definition: xml.hpp:40
Tree of Element nodes defined by an XML file.
Definition: xml.hpp:60
Node in a Document.
Definition: xml.hpp:49
Exception type for errors originating from the XML API.
Definition: xml.hpp:15