diff --git a/src/polymesh/algorithms/triangulate.cc b/src/polymesh/algorithms/triangulate.cc index daecd22340802b74a1f9396ccfc62df98b7ac83b..425b9d6de8b502778d92355a968ba291ef4405ec 100644 --- a/src/polymesh/algorithms/triangulate.cc +++ b/src/polymesh/algorithms/triangulate.cc @@ -17,9 +17,6 @@ void polymesh::triangulate_naive(polymesh::Mesh& m) if (vs.size() <= 3) continue; - // remove - m.faces().remove(f); - // find non-valence 2 auto si = 0; for (auto i = 0u; i < vs.size(); ++i) @@ -35,6 +32,10 @@ void polymesh::triangulate_naive(polymesh::Mesh& m) if (si < 0) si += int(vs.size()); + // remove + // NOTE: AFTER finding start idx + m.faces().remove(f); + // triangulate for (auto i = 2u; i < vs.size(); ++i) m.faces().add(vs[si], vs[(si + i - 1) % vs.size()], vs[(si + i) % vs.size()]);