Toast Engine
Toggle main menu visibility
Loading...
Searching...
No Matches
cube_face_basis.hpp
Go to the documentation of this file.
1
6
7
#pragma once
8
9
#include <cstdint>
10
#include <glm/glm.hpp>
11
12
namespace
renderer {
13
14
struct
CubeFaceBasis
{
15
glm::vec3 right;
16
glm::vec3 up;
17
glm::vec3 forward;
18
};
19
21
[[nodiscard]]
22
inline
auto
cubeFaceBasis
(uint32_t face) ->
CubeFaceBasis
{
23
switch
(face) {
24
case
0:
25
return
{
26
{0.0f, 0.0f, -1.0f},
27
{0.0f, -1.0f, 0.0f},
28
{1.0f, 0.0f, 0.0f}
29
};
30
case
1:
31
return
{
32
{ 0.0f, 0.0f, 1.0f},
33
{ 0.0f, -1.0f, 0.0f},
34
{-1.0f, 0.0f, 0.0f}
35
};
36
case
2:
37
return
{
38
{1.0f, 0.0f, 0.0f},
39
{0.0f, 0.0f, 1.0f},
40
{0.0f, 1.0f, 0.0f}
41
};
42
case
3:
43
return
{
44
{1.0f, 0.0f, 0.0f},
45
{0.0f, 0.0f, -1.0f},
46
{0.0f, -1.0f, 0.0f}
47
};
48
case
4:
49
return
{
50
{1.0f, 0.0f, 0.0f},
51
{0.0f, -1.0f, 0.0f},
52
{0.0f, 0.0f, 1.0f}
53
};
54
default
:
55
return
{
56
{-1.0f, 0.0f, 0.0f},
57
{ 0.0f, -1.0f, 0.0f},
58
{ 0.0f, 0.0f, -1.0f}
59
};
60
}
61
}
62
63
}
renderer::cubeFaceBasis
auto cubeFaceBasis(uint32_t face) -> CubeFaceBasis
+X -X +Y -Y +Z -Z order. Must agree with directionForFace() in environment.slang
Definition
cube_face_basis.hpp:22
renderer::CubeFaceBasis
Definition
cube_face_basis.hpp:14
engine
src
toast
renderer
cube_face_basis.hpp
Generated by
1.17.0