Fix error in BM_face_exists_overlap_subset
Was re-using loop index, thanks to @bzztploink for spotting!
This commit is contained in:
@@ -2186,14 +2186,13 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
|
|||||||
{
|
{
|
||||||
BMIter viter;
|
BMIter viter;
|
||||||
BMFace *f;
|
BMFace *f;
|
||||||
int i;
|
|
||||||
bool is_init = false;
|
bool is_init = false;
|
||||||
bool is_overlap = false;
|
bool is_overlap = false;
|
||||||
LinkNode *f_lnk = NULL;
|
LinkNode *f_lnk = NULL;
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
/* check flag isn't already set */
|
/* check flag isn't already set */
|
||||||
for (i = 0; i < len; i++) {
|
for (int i = 0; i < len; i++) {
|
||||||
BLI_assert(BM_ELEM_API_FLAG_TEST(varr[i], _FLAG_OVERLAP) == 0);
|
BLI_assert(BM_ELEM_API_FLAG_TEST(varr[i], _FLAG_OVERLAP) == 0);
|
||||||
BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) {
|
BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) {
|
||||||
BLI_assert(BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0);
|
BLI_assert(BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0);
|
||||||
@@ -2201,7 +2200,7 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
for (i = 0; i < len; i++) {
|
for (int i = 0; i < len; i++) {
|
||||||
BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) {
|
BM_ITER_ELEM (f, &viter, varr[i], BM_FACES_OF_VERT) {
|
||||||
if ((f->len <= len) && (BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0)) {
|
if ((f->len <= len) && (BM_ELEM_API_FLAG_TEST(f, _FLAG_OVERLAP) == 0)) {
|
||||||
/* check if all vers in this face are flagged*/
|
/* check if all vers in this face are flagged*/
|
||||||
@@ -2209,8 +2208,8 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
|
|||||||
|
|
||||||
if (is_init == false) {
|
if (is_init == false) {
|
||||||
is_init = true;
|
is_init = true;
|
||||||
for (i = 0; i < len; i++) {
|
for (int j = 0; j < len; j++) {
|
||||||
BM_ELEM_API_FLAG_ENABLE(varr[i], _FLAG_OVERLAP);
|
BM_ELEM_API_FLAG_ENABLE(varr[j], _FLAG_OVERLAP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2234,7 +2233,7 @@ bool BM_face_exists_overlap_subset(BMVert **varr, const int len)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (is_init == true) {
|
if (is_init == true) {
|
||||||
for (i = 0; i < len; i++) {
|
for (int i = 0; i < len; i++) {
|
||||||
BM_ELEM_API_FLAG_DISABLE(varr[i], _FLAG_OVERLAP);
|
BM_ELEM_API_FLAG_DISABLE(varr[i], _FLAG_OVERLAP);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user