From 0b8221683fa9b4d228728dcf3c2e95389315a4a6 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 9 Jul 2020 18:23:16 +1000 Subject: BMesh: add utility functions - BM_edge_uv_share_vert_check - BM_face_uv_calc_center_median_weighted - BM_loop_at_index_find --- source/blender/bmesh/intern/bmesh_mesh.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'source/blender/bmesh/intern/bmesh_mesh.c') diff --git a/source/blender/bmesh/intern/bmesh_mesh.c b/source/blender/bmesh/intern/bmesh_mesh.c index ffe84f93679..834371fefdf 100644 --- a/source/blender/bmesh/intern/bmesh_mesh.c +++ b/source/blender/bmesh/intern/bmesh_mesh.c @@ -2377,6 +2377,26 @@ BMFace *BM_face_at_index_find(BMesh *bm, const int index) return BLI_mempool_findelem(bm->fpool, index); } +BMLoop *BM_loop_at_index_find(BMesh *bm, const int index) +{ + BMIter iter; + BMFace *f; + int i = index; + BM_ITER_MESH (f, &iter, bm, BM_FACES_OF_MESH) { + if (i < f->len) { + BMLoop *l_first, *l_iter; + l_iter = l_first = BM_FACE_FIRST_LOOP(f); + do { + if (i == 0) { + return l_iter; + } + } while ((l_iter = l_iter->next) != l_first); + } + i -= f->len; + } + return NULL; +} + /** * Use lookup table when available, else use slower find functions. * -- cgit v1.2.3