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:
authorCampbell Barton <ideasman42@gmail.com>2012-04-19 16:45:56 +0400
committerCampbell Barton <ideasman42@gmail.com>2012-04-19 16:45:56 +0400
commit3ef79439100a910f2f23b8ad1d3584984d289ee9 (patch)
treec962832271925fe410f479dedddda848a01eb5fc /source/blender/bmesh
parent7cadd242d3eb7a29f19efe1d1462dbe12998c196 (diff)
code cleanup: first step to replace BM_ITER BM_ITER_INDEX macros.
Diffstat (limited to 'source/blender/bmesh')
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators.c9
-rw-r--r--source/blender/bmesh/intern/bmesh_iterators.h23
-rw-r--r--source/blender/bmesh/intern/bmesh_mesh.c46
-rw-r--r--source/blender/bmesh/intern/bmesh_operators.c4
4 files changed, 46 insertions, 36 deletions
diff --git a/source/blender/bmesh/intern/bmesh_iterators.c b/source/blender/bmesh/intern/bmesh_iterators.c
index b234d4514c0..384715d74f7 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.c
+++ b/source/blender/bmesh/intern/bmesh_iterators.c
@@ -83,18 +83,17 @@ void *BM_iter_at_index(BMesh *bm, const char itype, void *data, int index)
* Sometimes its convenient to get the iterator as an array
* to avoid multiple calls to #BM_iter_at_index.
*/
-int BM_iter_as_array(BMesh *bm, const char type, void *data, void **array, const int len)
+int BM_iter_as_array(BMesh *bm, const char itype, void *data, void **array, const int len)
{
int i = 0;
/* sanity check */
if (len > 0) {
-
BMIter iter;
- void *val;
+ void *ele;
- BM_ITER (val, &iter, bm, type, data) {
- array[i] = val;
+ for (ele = BM_iter_new(&iter, bm, itype, data); ele; ele = BM_iter_step(&iter)) {
+ array[i] = ele;
i++;
if (i == len) {
return len;
diff --git a/source/blender/bmesh/intern/bmesh_iterators.h b/source/blender/bmesh/intern/bmesh_iterators.h
index d3566d8aead..65da25015ee 100644
--- a/source/blender/bmesh/intern/bmesh_iterators.h
+++ b/source/blender/bmesh/intern/bmesh_iterators.h
@@ -83,13 +83,24 @@ typedef enum BMIterType {
extern const char bm_iter_itype_htype_map[BM_ITYPE_MAX];
-#define BM_ITER(ele, iter, bm, itype, data) \
- ele = BM_iter_new(iter, bm, itype, data); \
- for ( ; ele; ele = BM_iter_step(iter))
+#define BM_ITER(ele, iter, bm, itype, data) \
+ for (ele = BM_iter_new(iter, bm, itype, data); ele; ele = BM_iter_step(iter))
+
+#define BM_ITER_MESH(ele, iter, bm, itype) \
+ for (ele = BM_iter_new(iter, bm, itype, NULL); ele; ele = BM_iter_step(iter))
+
+#define BM_ITER_MESH_INDEX(ele, iter, bm, itype, indexvar) \
+ for (ele = BM_iter_new(iter, bm, itype, NULL), indexvar = 0; ele; ele = BM_iter_step(iter), (indexvar)++)
+
+#define BM_ITER_ELEM(ele, iter, data, itype) \
+ for (ele = BM_iter_new(iter, NULL, itype, data); ele; ele = BM_iter_step(iter))
+
+#define BM_ITER_ELEM_INDEX(ele, iter, data, itype) \
+ for (ele = BM_iter_new(iter, NULL, itype, data), indexvar = 0; ele; ele = BM_iter_step(iter), (indexvar)++)
+
+#define BM_ITER_INDEX(ele, iter, bm, itype, data, indexvar) \
+ for (ele = BM_iter_new(iter, bm, itype, data), indexvar = 0; ele; ele = BM_iter_step(iter), (indexvar)++)
-#define BM_ITER_INDEX(ele, iter, bm, itype, data, indexvar) \
- ele = BM_iter_new(iter, bm, itype, data); \
- for (indexvar = 0; ele; indexvar++, ele = BM_iter_step(iter))
/* Iterator Structure */
typedef struct BMIter {
diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c
index c70e694f9ea..d3c0404e73e 100644
--- a/source/blender/bmesh/intern/bmesh_mesh.c
+++ b/source/blender/bmesh/intern/bmesh_mesh.c
@@ -214,7 +214,7 @@ void BM_mesh_normals_update(BMesh *bm, const short skip_hidden)
BM_ITER (f, &faces, bm, BM_FACES_OF_MESH, NULL) {
if (skip_hidden && BM_elem_flag_test(f, BM_ELEM_HIDDEN))
continue;
-#if 0 /* UNUSED */
+#if 0 /* UNUSED */
if (f->head.flag & BM_NONORMCALC)
continue;
#endif
@@ -304,7 +304,7 @@ void BM_mesh_normals_update(BMesh *bm, const short skip_hidden)
*/
//keep in sycn with utils.c!
-#define FACE_FLIP 8
+#define FACE_FLIP 8
static void bm_rationalize_normals(BMesh *bm, int undo)
{
BMOperator bmop;
@@ -540,7 +540,7 @@ void BM_mesh_elem_index_validate(BMesh *bm, const char *location, const char *fu
int err_val = 0;
int err_idx = 0;
- BM_ITER (ele, &iter, bm, iter_types[i], NULL) {
+ BM_ITER_MESH (ele, &iter, bm, iter_types[i]) {
if (!is_dirty) {
if (BM_elem_index_get(ele) != index) {
err_val = BM_elem_index_get(ele);
@@ -561,7 +561,7 @@ void BM_mesh_elem_index_validate(BMesh *bm, const char *location, const char *fu
}
else if ((is_error == FALSE) && (is_dirty == TRUE)) {
-#if 0 /* mostly annoying */
+#if 0 /* mostly annoying */
/* dirty may have been incorrectly set */
fprintf(stderr,
@@ -619,8 +619,8 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
vptr_map = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "BM_mesh_remap vert pointers mapping");
/* Make a copy of all vertices. */
- verts_pool = MEM_callocN(sizeof(BMVert*) * totvert, "BM_mesh_remap verts pool");
- BM_iter_as_array(bm, BM_VERTS_OF_MESH, NULL, (void**)verts_pool, totvert);
+ verts_pool = MEM_callocN(sizeof(BMVert *) * totvert, "BM_mesh_remap verts pool");
+ BM_iter_as_array(bm, BM_VERTS_OF_MESH, NULL, (void **)verts_pool, totvert);
verts_copy = MEM_mallocN(sizeof(BMVert) * totvert, "BM_mesh_remap verts copy");
for (i = totvert, ve = verts_copy + totvert - 1, vep = verts_pool + totvert - 1; i--; ve--, vep--) {
*ve = **vep;
@@ -635,7 +635,7 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
BMVert *new_vep = verts_pool[*new_idx];
*new_vep = *ve;
/* printf("mapping vert from %d to %d (%p/%p to %p)\n", i, *new_idx, *vep, verts_pool[i], new_vep);*/
- BLI_ghash_insert(vptr_map, (void*)*vep, (void*)new_vep);
+ BLI_ghash_insert(vptr_map, (void *)*vep, (void *)new_vep);
}
bm->elem_index_dirty |= BM_VERT;
@@ -653,8 +653,8 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
eptr_map = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "BM_mesh_remap edge pointers mapping");
/* Make a copy of all vertices. */
- edges_pool = MEM_callocN(sizeof(BMEdge*) * totedge, "BM_mesh_remap edges pool");
- BM_iter_as_array(bm, BM_EDGES_OF_MESH, NULL, (void**)edges_pool, totedge);
+ edges_pool = MEM_callocN(sizeof(BMEdge *) * totedge, "BM_mesh_remap edges pool");
+ BM_iter_as_array(bm, BM_EDGES_OF_MESH, NULL, (void **)edges_pool, totedge);
edges_copy = MEM_mallocN(sizeof(BMEdge) * totedge, "BM_mesh_remap edges copy");
for (i = totedge, ed = edges_copy + totedge - 1, edp = edges_pool + totedge - 1; i--; ed--, edp--) {
*ed = **edp;
@@ -667,7 +667,7 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
for (i = totedge; i--; new_idx--, ed--, edp--) {
BMEdge *new_edp = edges_pool[*new_idx];
*new_edp = *ed;
- BLI_ghash_insert(eptr_map, (void*)*edp, (void*)new_edp);
+ BLI_ghash_insert(eptr_map, (void *)*edp, (void *)new_edp);
}
bm->elem_index_dirty |= BM_EDGE;
@@ -686,8 +686,8 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
fptr_map = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "BM_mesh_remap face pointers mapping");
/* Make a copy of all vertices. */
- faces_pool = MEM_callocN(sizeof(BMFace*) * totface, "BM_mesh_remap faces pool");
- BM_iter_as_array(bm, BM_FACES_OF_MESH, NULL, (void**)faces_pool, totface);
+ faces_pool = MEM_callocN(sizeof(BMFace *) * totface, "BM_mesh_remap faces pool");
+ BM_iter_as_array(bm, BM_FACES_OF_MESH, NULL, (void **)faces_pool, totface);
faces_copy = MEM_mallocN(sizeof(BMFace) * totface, "BM_mesh_remap faces copy");
for (i = totface, fa = faces_copy + totface - 1, fap = faces_pool + totface - 1; i--; fa--, fap--) {
*fa = **fap;
@@ -700,7 +700,7 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
for (i = totface; i--; new_idx--, fa--, fap--) {
BMFace *new_fap = faces_pool[*new_idx];
*new_fap = *fa;
- BLI_ghash_insert(fptr_map, (void*)*fap, (void*)new_fap);
+ BLI_ghash_insert(fptr_map, (void *)*fap, (void *)new_fap);
}
bm->elem_index_dirty |= BM_FACE;
@@ -712,36 +712,36 @@ void BM_mesh_remap(BMesh *bm, int *vert_idx, int *edge_idx, int *face_idx)
/* And now, fix all vertices/edges/faces/loops pointers! */
/* Verts' pointers, only edge pointers... */
if (eptr_map) {
- BM_ITER(ve, &iter, bm, BM_VERTS_OF_MESH, NULL) {
+ BM_ITER (ve, &iter, bm, BM_VERTS_OF_MESH, NULL) {
/* printf("Vert e: %p -> %p\n", ve->e, BLI_ghash_lookup(eptr_map, (const void*)ve->e));*/
- ve->e = BLI_ghash_lookup(eptr_map, (const void*)ve->e);
+ ve->e = BLI_ghash_lookup(eptr_map, (const void *)ve->e);
}
}
/* Edges' pointers, only vert pointers (as we don’t mess with loops!)... */
if (vptr_map) {
- BM_ITER(ed, &iter, bm, BM_EDGES_OF_MESH, NULL) {
+ BM_ITER (ed, &iter, bm, BM_EDGES_OF_MESH, NULL) {
/* printf("Edge v1: %p -> %p\n", ed->v1, BLI_ghash_lookup(vptr_map, (const void*)ed->v1));*/
/* printf("Edge v2: %p -> %p\n", ed->v2, BLI_ghash_lookup(vptr_map, (const void*)ed->v2));*/
- ed->v1 = BLI_ghash_lookup(vptr_map, (const void*)ed->v1);
- ed->v2 = BLI_ghash_lookup(vptr_map, (const void*)ed->v2);
+ ed->v1 = BLI_ghash_lookup(vptr_map, (const void *)ed->v1);
+ ed->v2 = BLI_ghash_lookup(vptr_map, (const void *)ed->v2);
}
}
/* Faces' pointers (loops, in fact), always needed... */
- BM_ITER(fa, &iter, bm, BM_FACES_OF_MESH, NULL) {
- BM_ITER(lo, &iterl, bm, BM_LOOPS_OF_FACE, fa) {
+ BM_ITER (fa, &iter, bm, BM_FACES_OF_MESH, NULL) {
+ BM_ITER (lo, &iterl, bm, BM_LOOPS_OF_FACE, fa) {
if (vptr_map) {
/* printf("Loop v: %p -> %p\n", lo->v, BLI_ghash_lookup(vptr_map, (const void*)lo->v));*/
- lo->v = BLI_ghash_lookup(vptr_map, (const void*)lo->v);
+ lo->v = BLI_ghash_lookup(vptr_map, (const void *)lo->v);
}
if (eptr_map) {
/* printf("Loop e: %p -> %p\n", lo->e, BLI_ghash_lookup(eptr_map, (const void*)lo->e));*/
- lo->e = BLI_ghash_lookup(eptr_map, (const void*)lo->e);
+ lo->e = BLI_ghash_lookup(eptr_map, (const void *)lo->e);
}
if (fptr_map) {
/* printf("Loop f: %p -> %p\n", lo->f, BLI_ghash_lookup(fptr_map, (const void*)lo->f));*/
- lo->f = BLI_ghash_lookup(fptr_map, (const void*)lo->f);
+ lo->f = BLI_ghash_lookup(fptr_map, (const void *)lo->f);
}
}
}
diff --git a/source/blender/bmesh/intern/bmesh_operators.c b/source/blender/bmesh/intern/bmesh_operators.c
index 32abaf10f64..e16554eb637 100644
--- a/source/blender/bmesh/intern/bmesh_operators.c
+++ b/source/blender/bmesh/intern/bmesh_operators.c
@@ -473,7 +473,7 @@ static int bmo_mesh_flag_count(BMesh *bm, const char htype, const short oflag,
for (i = 0; i < 3; i++) {
if (htype & flag_types[i]) {
- BM_ITER (ele_f, &iter, bm, iter_types[i], NULL) {
+ BM_ITER_MESH (ele_f, &iter, bm, iter_types[i]) {
if (BMO_elem_flag_test_bool(bm, ele_f, oflag) == test_for_enabled)
count++;
}
@@ -508,7 +508,7 @@ void BMO_mesh_flag_disable_all(BMesh *bm, BMOperator *UNUSED(op), const char hty
for (i = 0; i < 3; i++) {
if (htype & flag_types[i]) {
- BM_ITER (ele, &iter, bm, iter_types[i], NULL) {
+ BM_ITER_MESH (ele, &iter, bm, iter_types[i]) {
BMO_elem_flag_disable(bm, ele, oflag);
}
}