Fix failing curve modifiers tests

This commit is contained in:
Hans Goudey 2022-12-31 13:23:21 -05:00
parent 2741dd3b16
commit df39bce40a
3 changed files with 13 additions and 7 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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)