From cbedab2cb825a71e7e72b26bbde774c457f59cb2 Mon Sep 17 00:00:00 2001 From: allem Date: Tue, 28 Jan 2020 23:26:01 -0500 Subject: [PATCH] some results, but holey, not sure why --- vis/include/geometry.hpp | 9 ++++++--- vis/src/main.cpp | 11 +++++------ 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/vis/include/geometry.hpp b/vis/include/geometry.hpp index 913980b..2d39f1f 100644 --- a/vis/include/geometry.hpp +++ b/vis/include/geometry.hpp @@ -173,11 +173,12 @@ struct Mesh { } } + [[nodiscard]] Mesh recontext( const tc::Group &context, const std::vector &g_gens, const std::vector &sg_gens - ) { + ) const { const auto proper_sg_gens = recontext_gens(context, g_gens, sg_gens); // todo memo recontext const auto table = solve_g(context, g_gens); @@ -200,11 +201,12 @@ struct Mesh { return res; } + [[nodiscard]] Mesh tile( const tc::Group &context, const std::vector &g_gens, const std::vector &sg_gens - ) { + ) const { Mesh base = recontext(context, g_gens, sg_gens); const auto proper_sg_gens = recontext_gens(context, g_gens, sg_gens); @@ -220,7 +222,8 @@ struct Mesh { return merge(all); } - Mesh fan(int root) { + [[nodiscard]] + Mesh fan(int root) const { std::vector> res(prims.size()); std::transform(prims.begin(), prims.end(), res.begin(), [root](const Primitive &prim) { diff --git a/vis/src/main.cpp b/vis/src/main.cpp index 8566e6b..919c13c 100644 --- a/vis/src/main.cpp +++ b/vis/src/main.cpp @@ -122,10 +122,9 @@ int main(int argc, char *argv[]) { // }; auto chosen = combos; - for (const auto& sg_gens : chosen) { - const Mesh<4> &base = triangulate<4>(group, sg_gens); - const auto &s = base; -// s = tile(context, g_gens, sg_gens, base); + for (const auto &sg_gens : chosen) { + const auto s = triangulate<4>(group, sg_gens) + .tile(group, g_gens, sg_gens); GLuint vao = utilCreateVertexArray(); GLuint ibo = utilCreateBuffer(); @@ -133,7 +132,7 @@ int main(int argc, char *argv[]) { glBindVertexArray(vao); glBindBuffer(GL_ARRAY_BUFFER, ibo); - glBufferData(GL_ARRAY_BUFFER, sizeof(Primitive<4>) * count, &s.prims[0], GL_STATIC_DRAW); + glBufferData(GL_ARRAY_BUFFER, sizeof(Primitive<4>) * s.size(), &s.prims[0], GL_STATIC_DRAW); glEnableVertexAttribArray(0); glVertexAttribIPointer(0, 4, GL_INT, 0, nullptr); glBindBuffer(GL_ARRAY_BUFFER, 0); @@ -181,7 +180,7 @@ int main(int argc, char *argv[]) { glBindProgramPipeline(pipe); glBindVertexArray(vaos[i]); glProgramUniform3f(fs, 2, c.r, c.g, c.b); - glDrawArrays(GL_POINTS, 0, counts[i] / 4); + glDrawArrays(GL_POINTS, 0, counts[i]); } glBindProgramPipeline(0);