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:
authorAndrew Hale <TrumanBlending@gmail.com>2012-05-22 16:03:56 +0400
committerAndrew Hale <TrumanBlending@gmail.com>2012-05-22 16:03:56 +0400
commitc63602286c82682f62a96908f065d9552b0947b7 (patch)
tree60e212833ad65192d5a47ba39b1f2b56a0f9a4f7 /source/blender/editors
parent8b2ffc1428bd8bd27568fa7e340841149addaaf5 (diff)
Fix for customdata layer copying. Issue was caused by mixing up of destination and source in copy function. Also fixed an error in Py API, check to see if layers were different should be check to see if they're the same.
Diffstat (limited to 'source/blender/editors')
-rw-r--r--source/blender/editors/mesh/mesh_data.c42
1 files changed, 21 insertions, 21 deletions
diff --git a/source/blender/editors/mesh/mesh_data.c b/source/blender/editors/mesh/mesh_data.c
index bc11a627be6..19ca30b9c45 100644
--- a/source/blender/editors/mesh/mesh_data.c
+++ b/source/blender/editors/mesh/mesh_data.c
@@ -309,44 +309,44 @@ int ED_mesh_uv_loop_reset(struct bContext *C, struct Mesh *me)
int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_set)
{
BMEditMesh *em;
- int layernum;
+ int layernum_dst;
short is_init = FALSE;
if (me->edit_btmesh) {
em = me->edit_btmesh;
- layernum = CustomData_number_of_layers(&em->bm->pdata, CD_MTEXPOLY);
- if (layernum >= MAX_MTFACE)
+ layernum_dst = CustomData_number_of_layers(&em->bm->pdata, CD_MTEXPOLY);
+ if (layernum_dst >= MAX_MTFACE)
return -1;
/* CD_MTEXPOLY */
BM_data_layer_add_named(em->bm, &em->bm->pdata, CD_MTEXPOLY, name);
/* copy data from active UV */
- if (layernum) {
- const int layernum_dst = CustomData_get_active_layer(&em->bm->pdata, CD_MTEXPOLY);
- BM_data_layer_copy(em->bm, &em->bm->pdata, CD_MTEXPOLY, layernum, layernum_dst);
+ if (layernum_dst) {
+ const int layernum_src = CustomData_get_active_layer(&em->bm->pdata, CD_MTEXPOLY);
+ BM_data_layer_copy(em->bm, &em->bm->pdata, CD_MTEXPOLY, layernum_src, layernum_dst);
}
- if (active_set || layernum == 0) {
- CustomData_set_layer_active(&em->bm->pdata, CD_MTEXPOLY, layernum);
+ if (active_set || layernum_dst == 0) {
+ CustomData_set_layer_active(&em->bm->pdata, CD_MTEXPOLY, layernum_dst);
}
/* CD_MLOOPUV */
BM_data_layer_add_named(em->bm, &em->bm->ldata, CD_MLOOPUV, name);
/* copy data from active UV */
- if (layernum) {
- const int layernum_dst = CustomData_get_active_layer(&em->bm->ldata, CD_MLOOPUV);
- BM_data_layer_copy(em->bm, &em->bm->ldata, CD_MLOOPUV, layernum, layernum_dst);
+ if (layernum_dst) {
+ const int layernum_src = CustomData_get_active_layer(&em->bm->ldata, CD_MLOOPUV);
+ BM_data_layer_copy(em->bm, &em->bm->ldata, CD_MLOOPUV, layernum_src, layernum_dst);
is_init = TRUE;
}
- if (active_set || layernum == 0) {
- CustomData_set_layer_active(&em->bm->ldata, CD_MLOOPUV, layernum);
+ if (active_set || layernum_dst == 0) {
+ CustomData_set_layer_active(&em->bm->ldata, CD_MLOOPUV, layernum_dst);
}
}
else {
- layernum = CustomData_number_of_layers(&me->pdata, CD_MTEXPOLY);
- if (layernum >= MAX_MTFACE)
+ layernum_dst = CustomData_number_of_layers(&me->pdata, CD_MTEXPOLY);
+ if (layernum_dst >= MAX_MTFACE)
return -1;
if (me->mtpoly) {
@@ -361,11 +361,11 @@ int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_s
CustomData_add_layer_named(&me->fdata, CD_MTFACE, CD_DEFAULT, NULL, me->totface, name);
}
- if (active_set || layernum == 0) {
- CustomData_set_layer_active(&me->pdata, CD_MTEXPOLY, layernum);
- CustomData_set_layer_active(&me->ldata, CD_MLOOPUV, layernum);
+ if (active_set || layernum_dst == 0) {
+ CustomData_set_layer_active(&me->pdata, CD_MTEXPOLY, layernum_dst);
+ CustomData_set_layer_active(&me->ldata, CD_MLOOPUV, layernum_dst);
- CustomData_set_layer_active(&me->fdata, CD_MTFACE, layernum);
+ CustomData_set_layer_active(&me->fdata, CD_MTFACE, layernum_dst);
}
mesh_update_customdata_pointers(me, TRUE);
@@ -373,13 +373,13 @@ int ED_mesh_uv_texture_add(bContext *C, Mesh *me, const char *name, int active_s
/* don't overwrite our copied coords */
if (is_init == FALSE) {
- ED_mesh_uv_loop_reset_ex(C, me, layernum);
+ ED_mesh_uv_loop_reset_ex(C, me, layernum_dst);
}
DAG_id_tag_update(&me->id, 0);
WM_event_add_notifier(C, NC_GEOM | ND_DATA, me);
- return layernum;
+ return layernum_dst;
}
int ED_mesh_uv_texture_remove(bContext *C, Object *ob, Mesh *me)