X-Git-Url: https://git.lukelau.me/?p=opengl.git;a=blobdiff_plain;f=shapes.hpp;h=92cc8adb0882ecd6c3d3c54955bad6eb0a25d286;hp=69520aabdff32ce536db654250a233e0bd39e202;hb=d2a4cfcd292f5bc422a025d43855e5f4f21fb161;hpb=c44e69ec78367fb2957324026894aef970f2481a diff --git a/shapes.hpp b/shapes.hpp index 69520aa..92cc8ad 100644 --- a/shapes.hpp +++ b/shapes.hpp @@ -15,9 +15,13 @@ constexpr array quadToTriangles(const array quads) { }; } -constexpr const glm::vec3 foo() { - constexpr glm::vec3 foo(1,2,3); - return foo; +constexpr array plane() { + return quadToTriangles({ + glm::vec3(1, 1, 0), + glm::vec3(-1, 1, 0), + glm::vec3(-1, -1, 0), + glm::vec3(1, -1, 0) + }); } constexpr array cube() { @@ -82,3 +86,33 @@ constexpr array cube() { return vertices; } + +constexpr glm::vec3 pyramid[18] = { + glm::vec3(0.0f, 1.0f, 0.0f), + glm::vec3(1.0f, -1.0f, -1.0f), + glm::vec3(-1.0f, -1.0f, -1.0f), + + glm::vec3(0.0f, 1.0f, 0.0f), + glm::vec3(-1.0f, -1.0f, 1.0f), + glm::vec3(1.0f, -1.0f, 1.0f), + + glm::vec3(0.0f, 1.0f, 0.0f), + glm::vec3(-1.0f, -1.0f, -1.0f), + glm::vec3(-1.0f, -1.0f, 1.0f), + + glm::vec3(0.0f, 1.0f, 0.0f), + glm::vec3(1.0f, -1.0f, 1.0f), + glm::vec3(1.0f, -1.0f, -1.0f), + + glm::vec3(1, -1, 1), + glm::vec3(-1, -1, 1), + glm::vec3(-1, -1, -1), + glm::vec3(-1, -1, -1), + glm::vec3(1, -1, -1), + glm::vec3(1, -1, 1) +}; + +// TODO: Add a sphere +/* constexpr std::vector sphere() { */ + +/* } */