From e5d61c7f41e59bf8b8edf19bd9e57d87741f9cee Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Fri, 9 Oct 2009 21:45:14 +0000 Subject: Bugfix: separate mesh did not preserve UV/Color layers. --- source/blender/editors/mesh/editmesh.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'source/blender/editors/mesh/editmesh.c') diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index 1e3105f5c97..52744c81b7e 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -1342,11 +1342,14 @@ static int mesh_separate_selected(Scene *scene, Base *editbase) ED_base_object_select(basenew, BA_DESELECT); /* 2 */ - basenew->object->data= menew= add_mesh(me->id.name); /* empty */ + basenew->object->data= menew= add_mesh(me->id.name+2); /* empty */ assign_matarar(basenew->object, give_matarar(obedit), *give_totcolp(obedit)); /* new in 2.5 */ me->id.us--; make_editMesh(scene, basenew->object); emnew= menew->edit_mesh; + CustomData_copy(&em->vdata, &emnew->vdata, CD_MASK_EDITMESH, CD_DEFAULT, 0); + CustomData_copy(&em->edata, &emnew->edata, CD_MASK_EDITMESH, CD_DEFAULT, 0); + CustomData_copy(&em->fdata, &emnew->fdata, CD_MASK_EDITMESH, CD_DEFAULT, 0); /* 3 */ /* SPLIT: first make duplicate */ @@ -1389,6 +1392,8 @@ static int mesh_separate_selected(Scene *scene, Base *editbase) /* 5 */ load_editMesh(scene, basenew->object); free_editMesh(emnew); + MEM_freeN(menew->edit_mesh); + menew->edit_mesh= NULL; /* hashedges are invalid now, make new! */ editMesh_set_hash(em); -- cgit v1.2.3