From e4c2a3c31cf262fcf5d3577552e66b1c5e63218f Mon Sep 17 00:00:00 2001 From: Bastien Montagne Date: Tue, 15 Apr 2014 16:18:27 +0200 Subject: Various fixes/improvements regarding BMesh's elem_index_dirty and BM_LOOP handling. Most notably, BM_LOOP and BM_FACE index recompute should now be fully decoupled. --- source/blender/blenkernel/intern/cdderivedmesh.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c') diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 176ef505a9a..b1bf1b4889f 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -2162,6 +2162,8 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, const bool use_mdisps, mloop->e = BM_elem_index_get(l_iter->e); CustomData_from_bmesh_block(&bm->ldata, &dm->loopData, l_iter->head.data, j); + BM_elem_index_set(l_iter, j); /* set_inline */ + j++; mloop++; } while ((l_iter = l_iter->next) != l_first); @@ -2170,7 +2172,7 @@ static DerivedMesh *cddm_from_bmesh_ex(struct BMesh *bm, const bool use_mdisps, if (add_orig) *index++ = i; } - bm->elem_index_dirty &= ~BM_FACE; + bm->elem_index_dirty &= ~(BM_FACE | BM_LOOP); dm->cd_flag = BM_mesh_cd_flag_from_bmesh(bm); -- cgit v1.2.3