7 constexpr array<glm::vec3, 6> quadToTriangles(const array<glm::vec3, 4> quads) {
18 constexpr array<glm::vec3, 6> plane() {
19 return quadToTriangles({
27 constexpr array<glm::vec3, 36> cube() {
29 array<glm::vec3, 36> vertices;
31 const array<glm::vec3, 4> front = {
33 glm::vec3(-1, -1, -1),
38 for (auto v: quadToTriangles(front))
41 const array<glm::vec3, 4> back = {
47 for (auto v: quadToTriangles(back))
51 const array<glm::vec3, 4> top = {
57 for (auto v: quadToTriangles(top))
60 const array<glm::vec3, 4> bottom = {
63 glm::vec3(-1, -1, -1),
66 for (auto v: quadToTriangles(bottom))
69 const array<glm::vec3, 4> left = {
72 glm::vec3(-1, -1, -1),
75 for (auto v: quadToTriangles(left))
78 const array<glm::vec3, 4> right = {
84 for (auto v: quadToTriangles(right))
90 constexpr glm::vec3 pyramid[18] = {
91 glm::vec3(0.0f, 1.0f, 0.0f),
92 glm::vec3(1.0f, -1.0f, -1.0f),
93 glm::vec3(-1.0f, -1.0f, -1.0f),
95 glm::vec3(0.0f, 1.0f, 0.0f),
96 glm::vec3(-1.0f, -1.0f, 1.0f),
97 glm::vec3(1.0f, -1.0f, 1.0f),
99 glm::vec3(0.0f, 1.0f, 0.0f),
100 glm::vec3(-1.0f, -1.0f, -1.0f),
101 glm::vec3(-1.0f, -1.0f, 1.0f),
103 glm::vec3(0.0f, 1.0f, 0.0f),
104 glm::vec3(1.0f, -1.0f, 1.0f),
105 glm::vec3(1.0f, -1.0f, -1.0f),
108 glm::vec3(-1, -1, 1),
109 glm::vec3(-1, -1, -1),
110 glm::vec3(-1, -1, -1),
111 glm::vec3(1, -1, -1),