Bugfix: separate mesh did not preserve UV/Color layers.

This commit is contained in:
Brecht Van Lommel 2009-10-09 21:45:14 +00:00
parent a5b30906ad
commit e5d61c7f41

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