[Bf-blender-cvs] [25fa832d010] soc-2019-adaptive-cloth: Cloth: attempt at fixing extra face after collapsing edge

ishbosamiya noreply at git.blender.org
Thu Aug 15 18:08:27 CEST 2019


Commit: 25fa832d01010f09b3be64db1fe89b81e429ca84
Author: ishbosamiya
Date:   Thu Aug 15 12:16:39 2019 +0530
Branches: soc-2019-adaptive-cloth
https://developer.blender.org/rB25fa832d01010f09b3be64db1fe89b81e429ca84

Cloth: attempt at fixing extra face after collapsing edge

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

M	source/blender/blenkernel/intern/cloth_remeshing.cpp

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

diff --git a/source/blender/blenkernel/intern/cloth_remeshing.cpp b/source/blender/blenkernel/intern/cloth_remeshing.cpp
index f434aefd7af..4d97cd06c01 100644
--- a/source/blender/blenkernel/intern/cloth_remeshing.cpp
+++ b/source/blender/blenkernel/intern/cloth_remeshing.cpp
@@ -1862,6 +1862,31 @@ static bool cloth_remeshing_collapse_edges(ClothModifierData *clmd,
           char file_name[100];
           sprintf(file_name, "/tmp/objs/collapse_edge_debug_after_collapse.obj");
           cloth_remeshing_export_obj(clmd->clothObject->bm, file_name);
+#endif
+#if 0
+          /* Fix for when collapse edges leaves behind an extra
+           * triangle */
+          BMFace *f;
+          BMIter fiter;
+          BM_ITER_ELEM (f, &fiter, temp_e, BM_FACES_OF_EDGE) {
+            BMVert *vs[3];
+            BM_face_as_array_vert_tri(f, vs);
+            bool should_break = false;
+            for (int i = 0; i < 3; i++) {
+              /* if (!BM_vert_is_manifold(vs[i])) { */
+              if (cloth_remeshing_vert_on_seam_or_boundary_test(
+                      clmd->clothObject->bm, vs[i], cd_loop_uv_offset) &&
+                  !BM_vert_is_manifold(vs[i])) {
+                BM_vert_kill(clmd->clothObject->bm, vs[i]);
+                printf("Killed vert because of non manifold vert\n");
+                should_break = true;
+                break;
+              }
+            }
+            if (should_break) {
+              break;
+            }
+          }
 #endif
         }
         BLI_assert(BM_edge_face_count(temp_e) <= 2);



More information about the Bf-blender-cvs mailing list