BMesh: only remove loose geometry when joining faces
Joining faces could remove faces that happened to share an edge that would normally be removed.
This commit is contained in:
@@ -1399,11 +1399,15 @@ BMFace *BM_faces_join(BMesh *bm, BMFace **faces, int totface, const bool do_del)
|
|||||||
/* delete old geometry */
|
/* delete old geometry */
|
||||||
if (do_del) {
|
if (do_del) {
|
||||||
for (i = 0; i < BLI_array_count(deledges); i++) {
|
for (i = 0; i < BLI_array_count(deledges); i++) {
|
||||||
BM_edge_kill(bm, deledges[i]);
|
if (deledges[i]->l == NULL) {
|
||||||
|
BM_edge_kill(bm, deledges[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < BLI_array_count(delverts); i++) {
|
for (i = 0; i < BLI_array_count(delverts); i++) {
|
||||||
BM_vert_kill(bm, delverts[i]);
|
if (delverts[i]->e == NULL) {
|
||||||
|
BM_vert_kill(bm, delverts[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
Reference in New Issue
Block a user