From 7f4ee97b9ef93b0c8f9fc89d47ee8535ab665327 Mon Sep 17 00:00:00 2001 From: Howard Trickey Date: Sun, 10 Jul 2022 18:50:11 -0400 Subject: Revert "Fix an assert trip in boolean tickled by D11272 example." This reverts commit 65432901162c0dff124d55a04875050fd0f1ac22. It broke tests and I don't know why, so reverting this while figuring that out. --- source/blender/blenlib/intern/mesh_boolean.cc | 32 ++++----------------------- 1 file changed, 4 insertions(+), 28 deletions(-) (limited to 'source/blender/blenlib/intern') diff --git a/source/blender/blenlib/intern/mesh_boolean.cc b/source/blender/blenlib/intern/mesh_boolean.cc index 464b8f4139e..700c126ca4c 100644 --- a/source/blender/blenlib/intern/mesh_boolean.cc +++ b/source/blender/blenlib/intern/mesh_boolean.cc @@ -2966,11 +2966,6 @@ static std::ostream &operator<<(std::ostream &os, const FaceMergeState &fms) * \a tris all have the same original face. * Find the 2d edge/triangle topology for these triangles, but only the ones facing in the * norm direction, and whether each edge is dissolvable or not. - * If we did the initial triangulation properly, and any Delaunay triangulations of interections - * properly, then each triangle edge should have at most one neighbor. - * However, there can be anonalies. For example, if an input face is self-intersecting, we fall - * back on the floating poing polyfill triangulation, which, after which all bets are off. - * Hence, try to be tolerant of such unexpected topology. */ static void init_face_merge_state(FaceMergeState *fms, const Vector &tris, @@ -3058,35 +3053,16 @@ static void init_face_merge_state(FaceMergeState *fms, std::cout << "me.v1 == mf.vert[i] so set edge[" << me_index << "].left_face = " << f << "\n"; } - if (me.left_face != 1) { - /* Unexpected in the normal case: this means more than one triangle shares this - * edge in the same orientation. But be tolerant of this case. By making this - * edge not dissolvable, we'll avoid future problems due to this non-manifold topology. - */ - if (dbg_level > 1) { - std::cout << "me.left_face was already occupied, so triangulation wasn't good\n"; - } - me.dissolvable = false; - } - else { - fms->edge[me_index].left_face = f; - } + BLI_assert(me.left_face == -1); + fms->edge[me_index].left_face = f; } else { if (dbg_level > 1) { std::cout << "me.v1 != mf.vert[i] so set edge[" << me_index << "].right_face = " << f << "\n"; } - if (me.right_face != -1) { - /* Unexpected, analogous to the me.left_face != -1 case above. */ - if (dbg_level > 1) { - std::cout << "me.right_face was already occupied, so triangulation wasn't good\n"; - } - me.dissolvable = false; - } - else { - fms->edge[me_index].right_face = f; - } + BLI_assert(me.right_face == -1); + fms->edge[me_index].right_face = f; } fms->face[f].edge.append(me_index); } -- cgit v1.2.3