diff options
author | Campbell Barton <ideasman42@gmail.com> | 2014-03-12 11:21:27 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2014-03-12 11:30:38 +0400 |
commit | 4ae6c5cd7799a2d91c7109d061151b45a4e83c48 (patch) | |
tree | 7b590933fb5b298bdbd7db5600fafdee56749f7e /source/blender/bmesh/intern | |
parent | 5db086b7ce7146fcf0661f387aeeba676e1d08c9 (diff) |
BMesh: minor optimization, step over own loop in BM_face_exists
Diffstat (limited to 'source/blender/bmesh/intern')
-rw-r--r-- | source/blender/bmesh/intern/bmesh_queries.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/source/blender/bmesh/intern/bmesh_queries.c b/source/blender/bmesh/intern/bmesh_queries.c index e66af07eeac..5a0aae28175 100644 --- a/source/blender/bmesh/intern/bmesh_queries.c +++ b/source/blender/bmesh/intern/bmesh_queries.c @@ -1441,8 +1441,8 @@ BMEdge *BM_edge_find_double(BMEdge *e) bool BM_face_exists(BMVert **varr, int len, BMFace **r_existface) { BMVert *v_search = varr[0]; /* we can search any of the verts in the array */ - BMIter viter; - BMFace *f; + BMIter liter; + BMLoop *l_search; #if 0 @@ -1470,8 +1470,8 @@ bool BM_face_exists(BMVert **varr, int len, BMFace **r_existface) int i; - BM_ITER_ELEM (f, &viter, v_search, BM_FACES_OF_VERT) { - if (f->len == len) { + BM_ITER_ELEM (l_search, &liter, v_search, BM_LOOPS_OF_VERT) { + if (l_search->f->len == len) { if (is_init == false) { is_init = true; for (i = 0; i < len; i++) { @@ -1484,21 +1484,21 @@ bool BM_face_exists(BMVert **varr, int len, BMFace **r_existface) { BMLoop *l_iter; - BMLoop *l_first; - l_iter = l_first = BM_FACE_FIRST_LOOP(f); + /* skip ourselves */ + l_iter = l_search->next; do { if (!BM_ELEM_API_FLAG_TEST(l_iter->v, _FLAG_OVERLAP)) { is_found = false; break; } - } while ((l_iter = l_iter->next) != l_first); + } while ((l_iter = l_iter->next) != l_search); } if (is_found) { if (r_existface) { - *r_existface = f; + *r_existface = l_search->f; } break; } |