simple Mesh class

This commit is contained in:
2019-09-17 22:14:41 -04:00
parent cd2cbf85d0
commit 649cec0a9d
5 changed files with 98 additions and 100 deletions

View File

@@ -20,9 +20,12 @@ struct Mults {
[[nodiscard]] std::vector<int> relation(int a, int b) const;
[[nodiscard]] std::vector<std::vector<int>> relations(const std::vector<int>& gens) const;
[[nodiscard]] std::vector<std::vector<int>> relations(const std::vector<int> &gens) const;
[[nodiscard]] std::vector<std::vector<int>> irelations(const Table *table, const std::vector<int> &gens) const;
[[nodiscard]] Table *solve(const std::vector<int> &subgens) const;
[[nodiscard]] Table *solve(const std::vector<int> &gens, const std::vector<int> &subgens) const;
};
struct Table {
@@ -79,11 +82,11 @@ struct IRow {
[[nodiscard]] bool learn(Table *table);
};
Table *solve(const std::vector<int> &gens, const std::vector<int> &subgens, const Mults &mults);
Table *solve(const std::vector<int> &subgens, const Mults &mults);
Table *solve_elems(const Mults &mults);
//Table *solve(const std::vector<int> &gens, const std::vector<int> &subgens, const Mults &mults);
//
//Table *solve(const std::vector<int> &subgens, const Mults &mults);
//
//Table *solve_elems(const Mults &mults);
Mults schlafli(const std::vector<int> &symbol);

View File

@@ -17,3 +17,27 @@ std::vector<glm::vec4> vertices(const Table *t_vert, const glm::vec4 ident);
std::vector<int> edges(const Table *t_vert);
std::vector<int> faces(const Table *t_vert);
struct Buffer {
const GLuint name;
const unsigned size;
const float gen_time;
};
struct Mesh {
const Mults mults;
const Table *t_vert;
Buffer vert;
Buffer edge;
Buffer face;
Mesh(Mults mults, const Table *t_vert, Buffer vert, Buffer edge, Buffer face);
~Mesh();
};
Mesh *mesh(const Mults &mults, glm::vec4 ident);
std::ostream &operator<<(std::ostream &out, Buffer b);