[Bf-blender-cvs] [bb345173420] temp-T97352-3d-texturing-seam-bleeding-b2: Revert "Fix an assert trip in boolean tickled by D11272 example."

Howard Trickey noreply at git.blender.org
Mon Jul 11 15:36:22 CEST 2022


Commit: bb345173420065182f4d6e16b61195d441d2f81d
Author: Howard Trickey
Date:   Sun Jul 10 18:50:11 2022 -0400
Branches: temp-T97352-3d-texturing-seam-bleeding-b2
https://developer.blender.org/rBbb345173420065182f4d6e16b61195d441d2f81d

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.

===================================================================

M	source/blender/blenlib/intern/mesh_boolean.cc

===================================================================

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<int> &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);
     }



More information about the Bf-blender-cvs mailing list