Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2009-10-10 01:45:14 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2009-10-10 01:45:14 +0400
commite5d61c7f41e59bf8b8edf19bd9e57d87741f9cee (patch)
treed9b7461acca34b9ba6cd209650f583582bde1611 /source/blender/editors/mesh/editmesh.c
parenta5b30906ad7ae583631fb0f20ca5cf1cbebebd2f (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.c7
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);