diff options
Diffstat (limited to 'source/blender/bmesh/intern/bmesh_iterators_inline.h')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_iterators_inline.h | 76 |
1 files changed, 39 insertions, 37 deletions
diff --git a/source/blender/bmesh/intern/bmesh_iterators_inline.h b/source/blender/bmesh/intern/bmesh_iterators_inline.h index faa109617d5..6a0eb0e0a30 100644 --- a/source/blender/bmesh/intern/bmesh_iterators_inline.h +++ b/source/blender/bmesh/intern/bmesh_iterators_inline.h @@ -54,87 +54,89 @@ BLI_INLINE bool BM_iter_init(BMIter *iter, BMesh *bm, const char itype, void *da { /* int argtype; */ iter->itype = itype; - iter->bm = bm; /* inlining optimizes out this switch when called with the defined type */ switch ((BMIterType)itype) { case BM_VERTS_OF_MESH: BLI_assert(bm != NULL); BLI_assert(data == NULL); - iter->begin = bmiter__vert_of_mesh_begin; - iter->step = bmiter__vert_of_mesh_step; + iter->begin = (BMIter__begin_cb)bmiter__vert_of_mesh_begin; + iter->step = (BMIter__step_cb)bmiter__vert_of_mesh_step; + iter->data.vert_of_mesh.bm = bm; break; case BM_EDGES_OF_MESH: BLI_assert(bm != NULL); BLI_assert(data == NULL); - iter->begin = bmiter__edge_of_mesh_begin; - iter->step = bmiter__edge_of_mesh_step; + iter->begin = (BMIter__begin_cb)bmiter__edge_of_mesh_begin; + iter->step = (BMIter__step_cb)bmiter__edge_of_mesh_step; + iter->data.edge_of_mesh.bm = bm; break; case BM_FACES_OF_MESH: BLI_assert(bm != NULL); BLI_assert(data == NULL); - iter->begin = bmiter__face_of_mesh_begin; - iter->step = bmiter__face_of_mesh_step; + iter->begin = (BMIter__begin_cb)bmiter__face_of_mesh_begin; + iter->step = (BMIter__step_cb)bmiter__face_of_mesh_step; + iter->data.face_of_mesh.bm = bm; break; case BM_EDGES_OF_VERT: BLI_assert(data != NULL); - iter->begin = bmiter__edge_of_vert_begin; - iter->step = bmiter__edge_of_vert_step; - iter->vdata = (BMVert *)data; + iter->begin = (BMIter__begin_cb)bmiter__edge_of_vert_begin; + iter->step = (BMIter__step_cb)bmiter__edge_of_vert_step; + iter->data.edge_of_vert.vdata = (BMVert *)data; break; case BM_FACES_OF_VERT: BLI_assert(data != NULL); - iter->begin = bmiter__face_of_vert_begin; - iter->step = bmiter__face_of_vert_step; - iter->vdata = (BMVert *)data; + iter->begin = (BMIter__begin_cb)bmiter__face_of_vert_begin; + iter->step = (BMIter__step_cb)bmiter__face_of_vert_step; + iter->data.face_of_vert.vdata = (BMVert *)data; break; case BM_LOOPS_OF_VERT: BLI_assert(data != NULL); - iter->begin = bmiter__loop_of_vert_begin; - iter->step = bmiter__loop_of_vert_step; - iter->vdata = (BMVert *)data; + iter->begin = (BMIter__begin_cb)bmiter__loop_of_vert_begin; + iter->step = (BMIter__step_cb)bmiter__loop_of_vert_step; + iter->data.loop_of_vert.vdata = (BMVert *)data; break; case BM_VERTS_OF_EDGE: BLI_assert(data != NULL); - iter->begin = bmiter__vert_of_edge_begin; - iter->step = bmiter__vert_of_edge_step; - iter->edata = (BMEdge *)data; + iter->begin = (BMIter__begin_cb)bmiter__vert_of_edge_begin; + iter->step = (BMIter__step_cb)bmiter__vert_of_edge_step; + iter->data.vert_of_edge.edata = (BMEdge *)data; break; case BM_FACES_OF_EDGE: BLI_assert(data != NULL); - iter->begin = bmiter__face_of_edge_begin; - iter->step = bmiter__face_of_edge_step; - iter->edata = (BMEdge *)data; + iter->begin = (BMIter__begin_cb)bmiter__face_of_edge_begin; + iter->step = (BMIter__step_cb)bmiter__face_of_edge_step; + iter->data.face_of_edge.edata = (BMEdge *)data; break; case BM_VERTS_OF_FACE: BLI_assert(data != NULL); - iter->begin = bmiter__vert_of_face_begin; - iter->step = bmiter__vert_of_face_step; - iter->pdata = (BMFace *)data; + iter->begin = (BMIter__begin_cb)bmiter__vert_of_face_begin; + iter->step = (BMIter__step_cb)bmiter__vert_of_face_step; + iter->data.vert_of_face.pdata = (BMFace *)data; break; case BM_EDGES_OF_FACE: BLI_assert(data != NULL); - iter->begin = bmiter__edge_of_face_begin; - iter->step = bmiter__edge_of_face_step; - iter->pdata = (BMFace *)data; + iter->begin = (BMIter__begin_cb)bmiter__edge_of_face_begin; + iter->step = (BMIter__step_cb)bmiter__edge_of_face_step; + iter->data.edge_of_face.pdata = (BMFace *)data; break; case BM_LOOPS_OF_FACE: BLI_assert(data != NULL); - iter->begin = bmiter__loop_of_face_begin; - iter->step = bmiter__loop_of_face_step; - iter->pdata = (BMFace *)data; + iter->begin = (BMIter__begin_cb)bmiter__loop_of_face_begin; + iter->step = (BMIter__step_cb)bmiter__loop_of_face_step; + iter->data.loop_of_face.pdata = (BMFace *)data; break; case BM_LOOPS_OF_LOOP: BLI_assert(data != NULL); - iter->begin = bmiter__loops_of_loop_begin; - iter->step = bmiter__loops_of_loop_step; - iter->ldata = (BMLoop *)data; + iter->begin = (BMIter__begin_cb)bmiter__loop_of_loop_begin; + iter->step = (BMIter__step_cb)bmiter__loop_of_loop_step; + iter->data.loop_of_loop.ldata = (BMLoop *)data; break; case BM_LOOPS_OF_EDGE: BLI_assert(data != NULL); - iter->begin = bmiter__loops_of_edge_begin; - iter->step = bmiter__loops_of_edge_step; - iter->edata = (BMEdge *)data; + iter->begin = (BMIter__begin_cb)bmiter__loop_of_edge_begin; + iter->step = (BMIter__step_cb)bmiter__loop_of_edge_step; + iter->data.loop_of_edge.edata = (BMEdge *)data; break; default: /* should never happen */ |