22 using TagVec = std::vector<std::tuple<attribute::MeshAttributeHandle, int64_t>>;
23 using AttrVec = std::vector<attribute::MeshAttributeHandle>;
34 input_tags.emplace_back(std::make_tuple(handle, value));
44 input_tags.emplace_back(std::make_tuple(handle, value));
54 input_tags.emplace_back(std::make_tuple(handle, value));
64 input_tags.emplace_back(std::make_tuple(handle, value));
77 output_tags.emplace_back(std::make_tuple(handle, value));
87 output_tags.emplace_back(std::make_tuple(handle, value));
97 output_tags.emplace_back(std::make_tuple(handle, value));
107 output_tags.emplace_back(std::make_tuple(handle, value));
112 return std::make_tuple(input_tags, output_tags, pass_through_attributes);
123 Mesh& mesh =
static_cast<Mesh&
>(*mesh_in);
125 auto [input_tags, output_tags, pass_through_attributes] =
130 std::vector<attribute::MeshAttributeHandle> keeps = pass_through_attributes;
131 for (
const auto& [h, v] : input_tags) {
132 keeps.emplace_back(h);
134 for (
const auto& [h, v] : output_tags) {
135 keeps.emplace_back(h);
140 std::tie(input_tags, output_tags, pass_through_attributes) =
143 switch (mesh_in->top_simplex_type()) {
158 "Works only for faces and tetrahedrons, error-type: {}",
159 mesh_in->top_simplex_type());