Foundation
Loading...
Searching...
No Matches
Math.hpp
Go to the documentation of this file.
1#pragma once
2#define GLM_FORCE_RADIANS
3#define GLM_FORCE_SWIZZLE
4#define GLM_ENABLE_EXPERIMENTAL
5#define GLM_FORCE_QUAT_DATA_XYZW
6#define GLM_FORCE_XYZW_ONLY
7#define GLM_FORCE_QUAT_CTOR_XYZW
8#include <glm/glm.hpp>
9#include <glm/gtx/transform.hpp>
10#include <glm/gtx/matrix_decompose.hpp>
11#include <glm/gtc/integer.hpp>
12#include <glm/gtc/matrix_transform.hpp>
13#include <glm/gtc/quaternion.hpp>
14#include <glm/ext/quaternion_float.hpp>
15#include <glm/ext/quaternion_transform.hpp>
16#include <glm/vec2.hpp>
17#include <glm/vec3.hpp>
18#include <glm/vec4.hpp>
19#include <glm/mat2x2.hpp>
20#include <glm/mat3x3.hpp>
21#include <glm/mat4x4.hpp>
22
23namespace Foundation::Math {
24 using namespace glm;
25 using float4 = vec4;
26 using float3 = vec3;
27 using float2 = vec2;
28 using float4x4 = mat4;
29 using int2 = ivec2;
30 using int3 = ivec3;
31 using int4 = ivec4;
32 using uint = unsigned int;
33 using uint2 = uvec2;
34 using uint3 = uvec3;
35 using uint4 = uvec4;
36 // No Surprises.
37 // Shaders are compiled with -fvk-use-scalar-layout
38 // so interexchange should always be dense
39 static_assert(sizeof(float4) == 4 * sizeof(float));
40 static_assert(sizeof(float3) == 3 * sizeof(float));
41 static_assert(sizeof(float2) == 2 * sizeof(float));
42 static_assert(sizeof(float4x4) == 16 * sizeof(float));
43}
Definition Decompose.hpp:4
vec2 float2
Definition Math.hpp:27
ivec4 int4
Definition Math.hpp:31
vec3 float3
Definition Math.hpp:26
unsigned int uint
Definition Math.hpp:32
vec4 float4
Definition Math.hpp:25
uvec2 uint2
Definition Math.hpp:33
ivec3 int3
Definition Math.hpp:30
ivec2 int2
Definition Math.hpp:29
mat4 float4x4
Definition Math.hpp:28
uvec3 uint3
Definition Math.hpp:34
uvec4 uint4
Definition Math.hpp:35