[Bf-blender-cvs] [df39bce40ae] refactor-mesh-corners-generic: Fix failing curve modifiers tests

Hans Goudey noreply at git.blender.org
Sat Dec 31 19:23:26 CET 2022


Commit: df39bce40ae1b2cbc400ba64385cf347384f83ec
Author: Hans Goudey
Date:   Sat Dec 31 13:23:21 2022 -0500
Branches: refactor-mesh-corners-generic
https://developer.blender.org/rBdf39bce40ae1b2cbc400ba64385cf347384f83ec

Fix failing curve modifiers tests

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

M	source/blender/blenkernel/BKE_mesh.h
M	source/blender/blenkernel/intern/mesh_convert.cc
M	source/blender/blenkernel/intern/mesh_evaluate.cc

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

diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h
index 9a38b1328cb..fe131fed3c2 100644
--- a/source/blender/blenkernel/BKE_mesh.h
+++ b/source/blender/blenkernel/BKE_mesh.h
@@ -705,7 +705,7 @@ void BKE_mesh_calc_poly_angles(const struct MPoly *mpoly,
 
 void BKE_mesh_poly_edgehash_insert(struct EdgeHash *ehash,
                                    const struct MPoly *mp,
-                                   const int *poly_verts);
+                                   const int *corner_verts);
 void BKE_mesh_poly_edgebitmap_insert(unsigned int *edge_bitmap,
                                      const struct MPoly *mp,
                                      const int *poly_edges);
diff --git a/source/blender/blenkernel/intern/mesh_convert.cc b/source/blender/blenkernel/intern/mesh_convert.cc
index b65fb9aa295..df4f1a616f8 100644
--- a/source/blender/blenkernel/intern/mesh_convert.cc
+++ b/source/blender/blenkernel/intern/mesh_convert.cc
@@ -93,7 +93,7 @@ static void make_edges_mdata_extend(Mesh &mesh)
   EdgeHash *eh = BLI_edgehash_new_ex(__func__, eh_reserve);
 
   for (const MPoly &poly : polys) {
-    BKE_mesh_poly_edgehash_insert(eh, &poly, &corner_verts[poly.loopstart]);
+    BKE_mesh_poly_edgehash_insert(eh, &poly, corner_verts.data());
   }
 
   const int totedge_new = BLI_edgehash_len(eh);
diff --git a/source/blender/blenkernel/intern/mesh_evaluate.cc b/source/blender/blenkernel/intern/mesh_evaluate.cc
index 2ef3c385e51..37c2b35e50b 100644
--- a/source/blender/blenkernel/intern/mesh_evaluate.cc
+++ b/source/blender/blenkernel/intern/mesh_evaluate.cc
@@ -258,13 +258,19 @@ void BKE_mesh_calc_poly_angles(const MPoly *mpoly,
   }
 }
 
-void BKE_mesh_poly_edgehash_insert(EdgeHash *ehash, const MPoly *mp, const int *poly_verts)
+void BKE_mesh_poly_edgehash_insert(EdgeHash *ehash, const MPoly *mp, const int *corner_verts)
 {
-  using namespace blender;
-  for (const int i : IndexRange(mp->totloop).drop_back(1)) {
-    BLI_edgehash_reinsert(ehash, poly_verts[i], poly_verts[i + 1], nullptr);
+  int i = mp->totloop;
+
+  int corner_next = mp->loopstart;    /* first loop */
+  int corner = corner_next + (i - 1); /* last loop */
+
+  while (i-- != 0) {
+    BLI_edgehash_reinsert(ehash, corner_verts[corner], corner_verts[corner_next], nullptr);
+
+    corner = corner_next;
+    corner_next++;
   }
-  BLI_edgehash_reinsert(ehash, poly_verts[0], poly_verts[mp->totloop - 1], nullptr);
 }
 
 void BKE_mesh_poly_edgebitmap_insert(uint *edge_bitmap, const MPoly *mp, const int *poly_edges)



More information about the Bf-blender-cvs mailing list