[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [60916] branches/ soc-2013-meshdata_transfer/source/blender: Code Rewrite:
Walid Shouman
eng.walidshouman at gmail.com
Fri Oct 25 02:30:01 CEST 2013
Revision: 60916
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=60916
Author: walid
Date: 2013-10-25 00:30:00 +0000 (Fri, 25 Oct 2013)
Log Message:
-----------
Code Rewrite:
-treating the CD_MDEFORMVERT as any other CD
-Vertex Groups transfer: disabling the group selection feature till
there's a better way to copy specific groups with the customdata api
Modified Paths:
--------------
branches/soc-2013-meshdata_transfer/source/blender/bmesh/tools/bmesh_data_transfer.c
branches/soc-2013-meshdata_transfer/source/blender/editors/object/object_vgroup.c
Modified: branches/soc-2013-meshdata_transfer/source/blender/bmesh/tools/bmesh_data_transfer.c
===================================================================
--- branches/soc-2013-meshdata_transfer/source/blender/bmesh/tools/bmesh_data_transfer.c 2013-10-24 21:38:47 UTC (rev 60915)
+++ branches/soc-2013-meshdata_transfer/source/blender/bmesh/tools/bmesh_data_transfer.c 2013-10-25 00:30:00 UTC (rev 60916)
@@ -230,21 +230,17 @@
BMElem *ele_src = array_src[i];
BMElem *ele_dst = array_dst[i];
- if (layer_type == CD_MDEFORMVERT) {
- //all vertex groups will be copied as they are found in a single CD_layer
- ptr = CustomData_bmesh_get(cd_src, ele_src->head.data, layer_type);
- CustomData_bmesh_set(cd_dst, ele_dst->head.data, layer_type, ptr);
+ for (dst_n = dst_lay_start, src_n = src_lay_start; dst_n <= dst_lay_end; dst_n++, src_n++) {
+ ptr = CustomData_bmesh_get_n(cd_src, ele_src->head.data, layer_type, src_n);
+ CustomData_bmesh_set_n(cd_dst, ele_dst->head.data, layer_type, dst_n, ptr);
}
- else {
- for (dst_n = dst_lay_start, src_n = src_lay_start; dst_n <= dst_lay_end; dst_n++, src_n++) {
- ptr = CustomData_bmesh_get_n(cd_src, ele_src->head.data, layer_type, src_n);
- CustomData_bmesh_set_n(cd_dst, ele_dst->head.data, layer_type, dst_n, ptr);
- }
- }
-
}
}
+
+ else {
+ printf("%s: %d != %d\n", __func__, array_src_count, array_dst_count);
+ }
}
static void BM_mesh_transfer_aligned(BMesh *bm_src, BMesh *bm_dst, const char htype, const int layer_type,
@@ -333,18 +329,10 @@
ele_src = array_src[index_mapping[i]];
ele_dst = array_dst[i];
- if (layer_type == CD_MDEFORMVERT) {
- //all vertex groups will be copied as they are found in a single CD_layer
- ptr = CustomData_bmesh_get(cd_src, ele_src->head.data, layer_type);
- CustomData_bmesh_set(cd_dst, ele_dst->head.data, layer_type, ptr);
-
+ for (dst_n = dst_lay_start, src_n = src_lay_start; dst_n <= dst_lay_end; dst_n++, src_n++) {
+ ptr = CustomData_bmesh_get_n(cd_src, ele_src->head.data, layer_type, src_n);
+ CustomData_bmesh_set_n(cd_dst, ele_dst->head.data, layer_type, dst_n, ptr);
}
- else {
- for (dst_n = dst_lay_start, src_n = src_lay_start; dst_n <= dst_lay_end; dst_n++, src_n++) {
- ptr = CustomData_bmesh_get_n(cd_src, ele_src->head.data, layer_type, src_n);
- CustomData_bmesh_set_n(cd_dst, ele_dst->head.data, layer_type, dst_n, ptr);
- }
- }
}
}
Modified: branches/soc-2013-meshdata_transfer/source/blender/editors/object/object_vgroup.c
===================================================================
--- branches/soc-2013-meshdata_transfer/source/blender/editors/object/object_vgroup.c 2013-10-24 21:38:47 UTC (rev 60915)
+++ branches/soc-2013-meshdata_transfer/source/blender/editors/object/object_vgroup.c 2013-10-25 00:30:00 UTC (rev 60916)
@@ -389,6 +389,15 @@
replace_info.dst_lay_end = replace_info.dst_lay_start;
}
+ //this way we're disabling the feature of layer selection till we get a CD function that provides a group-based
+ //access to CD_MDEFORMVERT (ie: by customdata_layer_set_n), or may be a generalization to the CD_MDEFORMVERT
+ //representation to be split on layers except being saved in one layer
+ replace_info.src_lay_start = CustomData_get_active_layer(&me_src->vdata, CD_MDEFORMVERT);
+ replace_info.src_lay_end = replace_info.src_lay_start;
+ replace_info.dst_lay_start = CustomData_get_active_layer(&me_dst->vdata, CD_MDEFORMVERT);
+ replace_info.dst_lay_end = replace_info.dst_lay_start;
+
+
//allocate space
bm_src = BM_mesh_create(&bm_mesh_allocsize_default);
bm_dst = BM_mesh_create(&bm_mesh_allocsize_default);
More information about the Bf-blender-cvs
mailing list