diff options
author | Joseph Eagar <joeedh@gmail.com> | 2012-04-04 05:35:27 +0400 |
---|---|---|
committer | Joseph Eagar <joeedh@gmail.com> | 2012-04-04 05:35:27 +0400 |
commit | 1246a0d88b38407b8fdaf638d2c91f8b1a412ed8 (patch) | |
tree | 1ee1e266510c51b7ea0823f5eb488eaad51ef058 /source/blender/bmesh/intern | |
parent | ec8a26e040966bec61ab08ae1d4acbf41db08a5c (diff) |
Changed BM_mesh_bm_from_me to copy customdata layout for empty meshes.
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_mesh_conv.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/bmesh/intern/bmesh_mesh_conv.c b/source/blender/bmesh/intern/bmesh_mesh_conv.c index 73f47890f4d..25d2f2c366a 100644 --- a/source/blender/bmesh/intern/bmesh_mesh_conv.c +++ b/source/blender/bmesh/intern/bmesh_mesh_conv.c @@ -66,6 +66,17 @@ void BM_mesh_bm_from_me(BMesh *bm, Mesh *me, int set_key, int act_key_nr) int totuv, i, j; if (!me || !me->totvert) { + if (me) { /*no verts? still copy customdata layout*/ + CustomData_copy(&me->vdata, &bm->vdata, CD_MASK_BMESH, CD_ASSIGN, 0); + CustomData_copy(&me->edata, &bm->edata, CD_MASK_BMESH, CD_ASSIGN, 0); + CustomData_copy(&me->ldata, &bm->ldata, CD_MASK_BMESH, CD_ASSIGN, 0); + CustomData_copy(&me->pdata, &bm->pdata, CD_MASK_BMESH, CD_ASSIGN, 0); + + CustomData_bmesh_init_pool(&bm->vdata, me->totvert, BM_VERT); + CustomData_bmesh_init_pool(&bm->edata, me->totedge, BM_EDGE); + CustomData_bmesh_init_pool(&bm->ldata, me->totloop, BM_LOOP); + CustomData_bmesh_init_pool(&bm->pdata, me->totpoly, BM_FACE); + } return; /* sanity check */ } |