[Bf-blender-cvs] [b7ba27c] mesh-transfer-data: Get rid of some magic numbers.
Bastien Montagne
noreply at git.blender.org
Sun Nov 9 18:45:18 CET 2014
Commit: b7ba27c22cc3e30bd151780b4713045e5b5dd3df
Author: Bastien Montagne
Date: Sun Nov 9 16:28:06 2014 +0100
Branches: mesh-transfer-data
https://developer.blender.org/rBb7ba27c22cc3e30bd151780b4713045e5b5dd3df
Get rid of some magic numbers.
===================================================================
M source/blender/blenkernel/intern/data_transfer.c
===================================================================
diff --git a/source/blender/blenkernel/intern/data_transfer.c b/source/blender/blenkernel/intern/data_transfer.c
index d5a5efe..0a156ef 100644
--- a/source/blender/blenkernel/intern/data_transfer.c
+++ b/source/blender/blenkernel/intern/data_transfer.c
@@ -738,16 +738,22 @@ bool BKE_data_transfer_dm(
const int fromlayers_select[DT_MULTILAYER_IDX_MAX], const int tolayers_select[DT_MULTILAYER_IDX_MAX],
const int mix_mode, const float mix_factor, const char *vgroup_name, const bool invert_vgroup)
{
+#define VDATA 0
+#define EDATA 1
+#define LDATA 2
+#define PDATA 3
+#define DATAMAX 4
+
DerivedMesh *dm_src;
Mesh *me_dst;
int i;
MDeformVert *mdef = NULL;
int vg_idx = -1;
- float *weights[4] = {NULL};
+ float *weights[DATAMAX] = {NULL};
- Mesh2MeshMapping geom_map[4] = {{0}};
- bool geom_map_init[4] = {0};
+ Mesh2MeshMapping geom_map[DATAMAX] = {{0}};
+ bool geom_map_init[DATAMAX] = {0};
ListBase lay_map = {0};
bool changed = false;
@@ -800,19 +806,19 @@ bool BKE_data_transfer_dm(
const int num_verts_dst = dm_dst ? dm_dst->getNumVerts(dm_dst) : me_dst->totvert;
const int num_create = use_create ? num_verts_dst : 0;
- if (!geom_map_init[0]) {
+ if (!geom_map_init[VDATA]) {
BKE_dm2mesh_mapping_verts_compute(map_vert_mode, space_transform, max_distance, ray_radius,
- verts_dst, num_verts_dst, dm_src, &geom_map[0]);
- geom_map_init[0] = true;
+ verts_dst, num_verts_dst, dm_src, &geom_map[VDATA]);
+ geom_map_init[VDATA] = true;
}
- if (mdef && vg_idx != -1 && !weights[0]) {
- weights[0] = MEM_mallocN(sizeof(*(weights[0])) * (size_t)num_verts_dst, __func__);
- BKE_defvert_extract_vgroup_to_vertweights(mdef, vg_idx, num_verts_dst, weights[0], invert_vgroup);
+ if (mdef && vg_idx != -1 && !weights[VDATA]) {
+ weights[VDATA] = MEM_mallocN(sizeof(*(weights[VDATA])) * (size_t)num_verts_dst, __func__);
+ BKE_defvert_extract_vgroup_to_vertweights(mdef, vg_idx, num_verts_dst, weights[VDATA], invert_vgroup);
}
if (data_transfer_layersmapping_generate(&lay_map, ob_src, ob_dst, dm_src, dm_dst, me_dst, ME_VERT,
- cddata_type, mix_mode, mix_factor, weights[0],
+ cddata_type, mix_mode, mix_factor, weights[VDATA],
num_create, fromlayers, tolayers))
{
DataTransferLayerMapping *lay_mapit;
@@ -820,7 +826,7 @@ bool BKE_data_transfer_dm(
changed = (lay_map.first != NULL);
for (lay_mapit = lay_map.first; lay_mapit; lay_mapit = lay_mapit->next) {
- CustomData_data_transfer(&geom_map[0], lay_mapit);
+ CustomData_data_transfer(&geom_map[VDATA], lay_mapit);
}
BLI_freelistN(&lay_map);
@@ -833,21 +839,21 @@ bool BKE_data_transfer_dm(
const int num_edges_dst = dm_dst ? dm_dst->getNumEdges(dm_dst) : me_dst->totedge;
const int num_create = use_create ? num_edges_dst : 0;
- if (!geom_map_init[1]) {
+ if (!geom_map_init[EDATA]) {
BKE_dm2mesh_mapping_edges_compute(map_edge_mode, space_transform, max_distance, ray_radius,
verts_dst, num_verts_dst, edges_dst, num_edges_dst,
- dm_src, &geom_map[1]);
- geom_map_init[1] = true;
+ dm_src, &geom_map[EDATA]);
+ geom_map_init[EDATA] = true;
}
- if (mdef && vg_idx != -1 && !weights[1]) {
- weights[1] = MEM_mallocN(sizeof(*weights[1]) * (size_t)num_edges_dst, __func__);
+ if (mdef && vg_idx != -1 && !weights[EDATA]) {
+ weights[EDATA] = MEM_mallocN(sizeof(*weights[EDATA]) * (size_t)num_edges_dst, __func__);
BKE_defvert_extract_vgroup_to_edgeweights(mdef, vg_idx, num_verts_dst, edges_dst, num_edges_dst,
- weights[1], invert_vgroup);
+ weights[EDATA], invert_vgroup);
}
if (data_transfer_layersmapping_generate(&lay_map, ob_src, ob_dst, dm_src, dm_dst, me_dst, ME_EDGE,
- cddata_type, mix_mode, mix_factor, weights[1],
+ cddata_type, mix_mode, mix_factor, weights[EDATA],
num_create, fromlayers, tolayers))
{
DataTransferLayerMapping *lay_mapit;
@@ -855,7 +861,7 @@ bool BKE_data_transfer_dm(
changed = (lay_map.first != NULL);
for (lay_mapit = lay_map.first; lay_mapit; lay_mapit = lay_mapit->next) {
- CustomData_data_transfer(&geom_map[1], lay_mapit);
+ CustomData_data_transfer(&geom_map[EDATA], lay_mapit);
}
BLI_freelistN(&lay_map);
@@ -871,21 +877,21 @@ bool BKE_data_transfer_dm(
CustomData *pdata_dst = dm_dst ? dm_dst->getPolyDataLayout(dm_dst) : &me_dst->pdata;
const int num_create = use_create ? num_polys_dst : 0;
- if (!geom_map_init[2]) {
+ if (!geom_map_init[PDATA]) {
BKE_dm2mesh_mapping_polys_compute(map_poly_mode, space_transform, max_distance, ray_radius,
verts_dst, num_verts_dst, polys_dst, num_polys_dst,
- loops_dst, num_loops_dst, pdata_dst, dm_src, &geom_map[2]);
- geom_map_init[2] = true;
+ loops_dst, num_loops_dst, pdata_dst, dm_src, &geom_map[PDATA]);
+ geom_map_init[PDATA] = true;
}
- if (mdef && vg_idx != -1 && !weights[2]) {
- weights[2] = MEM_mallocN(sizeof(*weights[2]) * (size_t)num_polys_dst, __func__);
+ if (mdef && vg_idx != -1 && !weights[PDATA]) {
+ weights[PDATA] = MEM_mallocN(sizeof(*weights[PDATA]) * (size_t)num_polys_dst, __func__);
BKE_defvert_extract_vgroup_to_polyweights(mdef, vg_idx, num_verts_dst, loops_dst, num_loops_dst,
- polys_dst, num_polys_dst, weights[2], invert_vgroup);
+ polys_dst, num_polys_dst, weights[PDATA], invert_vgroup);
}
if (data_transfer_layersmapping_generate(&lay_map, ob_src, ob_dst, dm_src, dm_dst, me_dst, ME_POLY,
- cddata_type, mix_mode, mix_factor, weights[2],
+ cddata_type, mix_mode, mix_factor, weights[PDATA],
num_create, fromlayers, tolayers))
{
DataTransferLayerMapping *lay_mapit;
@@ -893,7 +899,7 @@ bool BKE_data_transfer_dm(
changed = (lay_map.first != NULL);
for (lay_mapit = lay_map.first; lay_mapit; lay_mapit = lay_mapit->next) {
- CustomData_data_transfer(&geom_map[2], lay_mapit);
+ CustomData_data_transfer(&geom_map[PDATA], lay_mapit);
}
BLI_freelistN(&lay_map);
@@ -914,22 +920,22 @@ bool BKE_data_transfer_dm(
loop_island_compute island_callback = data_transfer_get_loop_islands_generator(cddata_type);
- if (!geom_map_init[3]) {
+ if (!geom_map_init[LDATA]) {
BKE_dm2mesh_mapping_loops_compute(map_loop_mode, space_transform, max_distance, ray_radius,
verts_dst, num_verts_dst, edges_dst, num_edges_dst,
polys_dst, num_polys_dst, loops_dst, num_loops_dst, pdata_dst, ldata_dst,
- me_dst->smoothresh, dm_src, island_callback, &geom_map[3]);
- geom_map_init[3] = true;
+ me_dst->smoothresh, dm_src, island_callback, &geom_map[LDATA]);
+ geom_map_init[LDATA] = true;
}
- if (mdef && vg_idx != -1 && !weights[3]) {
- weights[3] = MEM_mallocN(sizeof(*weights[3]) * (size_t)num_loops_dst, __func__);
+ if (mdef && vg_idx != -1 && !weights[LDATA]) {
+ weights[LDATA] = MEM_mallocN(sizeof(*weights[LDATA]) * (size_t)num_loops_dst, __func__);
BKE_defvert_extract_vgroup_to_loopweights(mdef, vg_idx, num_verts_dst, loops_dst, num_loops_dst,
- weights[3], invert_vgroup);
+ weights[LDATA], invert_vgroup);
}
if (data_transfer_layersmapping_generate(&lay_map, ob_src, ob_dst, dm_src, dm_dst, me_dst, ME_LOOP,
- cddata_type, mix_mode, mix_factor, weights[3],
+ cddata_type, mix_mode, mix_factor, weights[LDATA],
num_create, fromlayers, tolayers))
{
DataTransferLayerMapping *lay_mapit;
@@ -937,7 +943,7 @@ bool BKE_data_transfer_dm(
changed = (lay_map.first != NULL);
for (lay_mapit = lay_map.first; lay_mapit; lay_mapit = lay_mapit->next) {
- CustomData_data_transfer(&geom_map[3], lay_mapit);
+ CustomData_data_transfer(&geom_map[LDATA], lay_mapit);
}
BLI_freelistN(&lay_map);
@@ -945,12 +951,18 @@ bool BKE_data_transfer_dm(
}
}
- for (i = 0; i < 4; i++) {
+ for (i = 0; i < DATAMAX; i++) {
BKE_mesh2mesh_mapping_free(&geom_map[i]);
MEM_SAFE_FREE(weights[i]);
}
return changed;
+
+#undef VDATA
+#undef EDATA
+#undef LDATA
+#undef PDATA
+#undef DATAMAX
}
bool BKE_data_transfer_mesh(
More information about the Bf-blender-cvs
mailing list