TriangleSelector: backend is aware of divided triangles

This commit is contained in:
Lukas Matena 2020-07-15 10:28:20 +02:00
parent 0756a7e4b3
commit 3b91d11ddf
5 changed files with 33 additions and 13 deletions

View file

@ -512,6 +512,25 @@ void TriangleSelector::perform_split(int facet_idx, FacetSupportType old_state)
}
indexed_triangle_set TriangleSelector::get_facets(FacetSupportType state) const
{
indexed_triangle_set out;
for (const Triangle& tr : m_triangles) {
if (tr.valid && ! tr.is_split() && tr.get_state() == state) {
stl_triangle_vertex_indices indices;
for (int i=0; i<3; ++i) {
out.vertices.emplace_back(m_vertices[tr.verts_idxs[i]].v);
indices[i] = out.vertices.size() - 1;
}
out.indices.emplace_back(indices);
}
}
return out;
}
std::map<int, std::vector<bool>> TriangleSelector::serialize() const
{
// Each original triangle of the mesh is assigned a number encoding its state