/*****radial cycle functions, e.g. loops surrounding edges**** */ bool bmesh_radial_validate(int radlen, BMLoop *l) { BMLoop *l_iter = l; int i = 0; if (bmesh_radial_length(l) != radlen) return false; do { if (UNLIKELY(!l_iter)) { BMESH_ASSERT(0); return false; } if (l_iter->e != l->e) return false; if (l_iter->v != l->e->v1 && l_iter->v != l->e->v2) return false; if (UNLIKELY(i > BM_LOOP_RADIAL_MAX)) { BMESH_ASSERT(0); return false; } i++; } while ((l_iter = l_iter->radial_next) != l); return true; }
bool bmesh_radial_face_find(BMEdge *e, BMFace *f) { BMLoop *l_iter; int i, len; len = bmesh_radial_length(e->l); for (i = 0, l_iter = e->l; i < len; i++, l_iter = l_iter->radial_next) { if (l_iter->f == f) return true; } return false; }