ENH: Use include and exclude in vis::Group

This commit is contained in:
2023-02-05 11:56:49 -05:00
parent b17b221fa3
commit aa2566319f
2 changed files with 4 additions and 4 deletions

View File

@@ -24,6 +24,7 @@ namespace vis {
vec3 color; vec3 color;
std::vector<std::vector<size_t>> exclude {{0, 1, 2}}; std::vector<std::vector<size_t>> exclude {{0, 1, 2}};
std::vector<std::vector<size_t>> include = combinations(generators(group), 3);
}; };
struct VBOs { struct VBOs {
@@ -53,9 +54,7 @@ namespace vis {
// todo generate all, then mask using glMultiDraw. // todo generate all, then mask using glMultiDraw.
const size_t N = 4; const size_t N = 4;
auto gens = generators(group.group); auto inds = merge<N>(hull<N>(group.group, group.include, group.exclude));
auto combos = combinations(gens, N - 1);
auto inds = merge<N>(hull<N>(group.group, combos, group.exclude));
vbos.ibo.put(inds.begin(), inds.end()); vbos.ibo.put(inds.begin(), inds.end());
} }

View File

@@ -130,7 +130,8 @@ void run(const std::string &config_file, GLFWwindow* window) {
tc::schlafli({5, 3, 3, 2}), tc::schlafli({5, 3, 3, 2}),
vec5{0.80, 0.09, 0.09, 0.09, 0.04}, vec5{0.80, 0.09, 0.09, 0.09, 0.04},
vec3{0.90, 0.90, 0.90}, vec3{0.90, 0.90, 0.90},
std::vector<std::vector<size_t>>{{0, 1, 2}} std::vector<std::vector<size_t>>{{0, 1, 2},
{0, 3, 4}, {1, 3, 4}, {2, 3, 4}}
); );
registry.emplace<vis::VBOs>(entity); registry.emplace<vis::VBOs>(entity);
} }