diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-10-10 01:45:14 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-10-10 01:45:14 +0400 |
commit | e5d61c7f41e59bf8b8edf19bd9e57d87741f9cee (patch) | |
tree | d9b7461acca34b9ba6cd209650f583582bde1611 /source/blender/editors/mesh/editmesh.c | |
parent | a5b30906ad7ae583631fb0f20ca5cf1cbebebd2f (diff) |
Bugfix: separate mesh did not preserve UV/Color layers.
Diffstat (limited to 'source/blender/editors/mesh/editmesh.c')
-rw-r--r-- | source/blender/editors/mesh/editmesh.c | 7 |
1 files changed, 6 insertions, 1 deletions
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); |