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:
-rw-r--r--source/blender/bmesh/intern/bmesh_interp.c16
-rw-r--r--source/blender/editors/mesh/mesh_data.c42
-rw-r--r--source/blender/python/bmesh/bmesh_py_types_customdata.c7
3 files changed, 34 insertions, 31 deletions
diff --git a/source/blender/bmesh/intern/bmesh_interp.c b/source/blender/bmesh/intern/bmesh_interp.c
index f64b55193c5..c39096d0800 100644
--- a/source/blender/bmesh/intern/bmesh_interp.c
+++ b/source/blender/bmesh/intern/bmesh_interp.c
@@ -852,24 +852,24 @@ void BM_data_layer_copy(BMesh *bm, CustomData *data, int type, int src_n, int ds
BMVert *eve;
BM_ITER_MESH (eve, &iter, bm, BM_VERTS_OF_MESH) {
- void *ptr = CustomData_bmesh_get_n(data, eve->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, eve->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, eve->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, eve->head.data, type, dst_n, ptr);
}
}
else if (&bm->edata == data) {
BMEdge *eed;
BM_ITER_MESH (eed, &iter, bm, BM_EDGES_OF_MESH) {
- void *ptr = CustomData_bmesh_get_n(data, eed->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, eed->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, eed->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, eed->head.data, type, dst_n, ptr);
}
}
else if (&bm->pdata == data) {
BMFace *efa;
BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
- void *ptr = CustomData_bmesh_get_n(data, efa->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, efa->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, efa->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, efa->head.data, type, dst_n, ptr);
}
}
else if (&bm->ldata == data) {
@@ -879,8 +879,8 @@ void BM_data_layer_copy(BMesh *bm, CustomData *data, int type, int src_n, int ds
BM_ITER_MESH (efa, &iter, bm, BM_FACES_OF_MESH) {
BM_ITER_ELEM (l, &liter, efa, BM_LOOPS_OF_FACE) {
- void *ptr = CustomData_bmesh_get_n(data, l->head.data, type, dst_n);
- CustomData_bmesh_set_n(data, l->head.data, type, src_n, ptr);
+ void *ptr = CustomData_bmesh_get_n(data, l->head.data, type, src_n);
+ CustomData_bmesh_set_n(data, l->head.data, type, dst_n, ptr);
}
}
}
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)
diff --git a/source/blender/python/bmesh/bmesh_py_types_customdata.c b/source/blender/python/bmesh/bmesh_py_types_customdata.c
index f25222c89da..d484ad5c87e 100644
--- a/source/blender/python/bmesh/bmesh_py_types_customdata.c
+++ b/source/blender/python/bmesh/bmesh_py_types_customdata.c
@@ -271,13 +271,16 @@ static PyObject *bpy_bmlayeritem_copy_from(BPy_BMLayerItem *self, BPy_BMLayerIte
}
else if ((self->htype != value->htype) ||
- (self->type != value->type) ||
- (self->index != value->index))
+ (self->type != value->type))
{
PyErr_SetString(PyExc_ValueError,
"layer.copy_from(other): layer type mismatch");
}
+ else if (self->index == value->index) {
+ Py_RETURN_NONE;
+ }
+
data = bpy_bm_customdata_get(self->bm, self->htype);
if ((bpy_bmlayeritem_get(self) == NULL) ||