libdonut 2.3.6
Application framework for cross-platform game development in C++20
Loading...
Searching...
No Matches
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
8namespace donut {
9
10template <std::size_t InitialResolution, std::size_t Padding>
11class AtlasPacker;
12
13namespace base64 {}
14
15class Color;
16
17class File;
18
19enum class FilesystemMountPriority : int;
20struct FilesystemOptions;
21class Filesystem;
22
23struct Monostate;
24
25namespace json {
26
27struct SourceLocation;
28struct Error;
29using Null = Monostate;
30using Boolean = bool;
31using Number = double;
32class Object;
33class Array;
34class Value;
35template <typename T>
36struct Serializer;
37template <typename T>
38struct Deserializer;
39struct SerializationOptions;
40struct DeserializationOptions;
41struct SerializationState;
42struct DeserializationState;
43
44} // namespace json
45
46class LinearMemoryResource;
47template <typename T>
48class LinearAllocator;
49
50template <typename... Ts>
51class LinearBuffer;
52
53template <typename T>
54class LooseQuadtree;
55
56namespace numbers {} // namespace numbers
57
58using glm::dmat2;
59using glm::dmat3;
60using glm::dmat4;
61using glm::dvec2;
62using glm::dvec3;
63using glm::dvec4;
64using glm::i16;
65using glm::i16vec2;
66using glm::i16vec3;
67using glm::i16vec4;
68using glm::i32;
69using glm::i32vec2;
70using glm::i32vec3;
71using glm::i32vec4;
72using glm::i64;
73using glm::i64vec2;
74using glm::i64vec3;
75using glm::i64vec4;
76using glm::i8;
77using glm::i8vec2;
78using glm::i8vec3;
79using glm::i8vec4;
80using glm::ivec2;
81using glm::ivec3;
82using glm::ivec4;
83using glm::length_t;
84using glm::mat;
85using glm::mat2;
86using glm::mat3;
87using glm::mat4;
88using glm::qua;
89using glm::quat;
90using glm::u16;
91using glm::u16vec2;
92using glm::u16vec3;
93using glm::u16vec4;
94using glm::u32;
95using glm::u32vec2;
96using glm::u32vec3;
97using glm::u32vec4;
98using glm::u64;
99using glm::u64vec2;
100using glm::u64vec3;
101using glm::u64vec4;
102using glm::u8;
103using glm::u8vec2;
104using glm::u8vec3;
105using glm::u8vec4;
106using glm::uvec2;
107using glm::uvec3;
108using glm::uvec4;
109using glm::vec;
110using glm::vec2;
111using glm::vec3;
112using glm::vec4;
113
114namespace obj {
115
116struct Error;
117struct FaceVertex;
118struct Face;
119struct Group;
120struct Object;
121struct Scene;
122
123namespace mtl {
124
125enum class IlluminationModel : std::uint8_t;
126struct Material;
127struct Library;
128
129} // namespace mtl
130} // namespace obj
131
132template <typename... Functors>
133struct Overloaded;
134
135namespace random {
136
137class SplitMix64Engine;
139
140} // namespace random
141
142namespace reflection {}
143
144template <length_t L, typename T>
145struct LineSegment;
146
147template <length_t L, typename T>
148struct Sphere;
149
150template <typename T>
151struct Circle;
152
153template <length_t L, typename T>
154struct Capsule;
155
156template <length_t L, typename T>
157struct Box;
158
159template <typename T>
160struct Rectangle;
161
162template <typename T, typename Period>
163class Time;
164
165namespace unicode {
166
168struct UTF8Sentinel;
169template <typename It, typename Sentinel>
170class UTF8Iterator;
171class UTF8View;
172
173} // namespace unicode
174
175template <typename Handle, typename Deleter, Handle NullHandle>
176class UniqueHandle;
177
178struct BadVariantAccess;
179template <typename... Ts>
180class Variant;
181
182namespace xml {
183
184struct Error;
185struct Attribute;
186struct Element;
187struct 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:290
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:281
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