Пример #1
0
void  *bmiter__face_of_vert_step(BMIter *iter)
{
	BMLoop *current = iter->l_next;

	if (iter->count && iter->l_next) {
		iter->count--;
		iter->l_next = bmesh_radial_faceloop_find_next(iter->l_next, iter->vdata);
		if (iter->l_next == iter->l_first) {
			iter->e_next = bmesh_disk_faceedge_find_next(iter->e_next, iter->vdata);
			iter->l_first = bmesh_radial_faceloop_find_first(iter->e_next->l, iter->vdata);
			iter->l_next = iter->l_first;
		}
	}
	
	if (!iter->count) iter->l_next = NULL;

	return current ? current->f : NULL;
}
Пример #2
0
void  *bmiter__face_of_vert_step(BMIter *iter)
{
	BMLoop *current = iter->nextloop;

	if (iter->count && iter->nextloop) {
		iter->count--;
		iter->nextloop = bmesh_radial_faceloop_find_next(iter->nextloop, iter->vdata);
		if (iter->nextloop == iter->firstloop) {
			iter->nextedge = bmesh_disk_faceedge_find_next(iter->nextedge, iter->vdata);
			iter->firstloop = bmesh_radial_faceloop_find_first(iter->nextedge->l, iter->vdata);
			iter->nextloop = iter->firstloop;
		}
	}
	
	if (!iter->count) iter->nextloop = NULL;

	return current ? current->f : NULL;
}