[Bf-blender-cvs] [b81c8b9] temp-material-remap: use macro /w error checks for remapping
Campbell Barton
noreply at git.blender.org
Mon Apr 27 22:39:12 CEST 2015
Commit: b81c8b983a16fa37d4a6df2df4321df58227c819
Author: Campbell Barton
Date: Tue Apr 28 06:38:38 2015 +1000
Branches: temp-material-remap
https://developer.blender.org/rBb81c8b983a16fa37d4a6df2df4321df58227c819
use macro /w error checks for remapping
===================================================================
M source/blender/blenkernel/intern/material.c
===================================================================
diff --git a/source/blender/blenkernel/intern/material.c b/source/blender/blenkernel/intern/material.c
index 109e0d3..490cc29 100644
--- a/source/blender/blenkernel/intern/material.c
+++ b/source/blender/blenkernel/intern/material.c
@@ -942,6 +942,14 @@ void BKE_material_remap_object(Object *ob, unsigned int remap[])
BLI_array_permute(*matar, *totcol_p, remap);
}
+#define MAT_NR_REMAP(n) \
+ if (n < mat_nr_max) { \
+ BLI_assert(n >= 0); \
+ BLI_assert(remap[n] < mat_nr_max); \
+ n = remap[n]; \
+ } ((void)0)
+
+
/* Now reassign the new material order to the affected items in the object*/
if (ob->type == OB_MESH) {
if (ob->mode == OB_MODE_EDIT) {
@@ -952,18 +960,14 @@ void BKE_material_remap_object(Object *ob, unsigned int remap[])
BMFace *efa;
BM_ITER_MESH(efa, &iter, em->bm, BM_FACES_OF_MESH) {
- if (efa->mat_nr < mat_nr_max) {
- efa->mat_nr = remap[efa->mat_nr];
- }
+ MAT_NR_REMAP(efa->mat_nr);
}
}
}
else {
Mesh *me = ob->data;
for (int index = 0; index < me->totpoly; index++) {
- if (me->mpoly[index].mat_nr < mat_nr_max) {
- me->mpoly[index].mat_nr = remap[me->mpoly[index].mat_nr];
- }
+ MAT_NR_REMAP(me->mpoly[index].mat_nr);
}
}
}
@@ -973,9 +977,7 @@ void BKE_material_remap_object(Object *ob, unsigned int remap[])
if (nurbs) {
for (nu = nurbs->first; nu; nu = nu->next) {
- if (nu->mat_nr < mat_nr_max) {
- nu->mat_nr = remap[nu->mat_nr];
- }
+ MAT_NR_REMAP(nu->mat_nr);
}
}
}
@@ -995,15 +997,16 @@ void BKE_material_remap_object(Object *ob, unsigned int remap[])
}
for (int i = 0; i <= charinfo_len; i++) {
- if (strinfo[i].mat_nr < mat_nr_max) {
- strinfo[i].mat_nr = remap[strinfo[i].mat_nr];
- }
+ MAT_NR_REMAP(strinfo[i].mat_nr);
}
}
else {
/* add support for this object data! */
BLI_assert(matar == NULL);
}
+
+#undef MAT_NR_REMAP
+
}
More information about the Bf-blender-cvs
mailing list