Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2021-04-12 07:24:09 +0300
committerCampbell Barton <ideasman42@gmail.com>2021-04-12 07:24:09 +0300
commit2a14ab998a576df6ba1fa5dc2c680d9078e58f81 (patch)
tree59505a2ac547eada0777ae23bdcedaa6f99f10ee /source/blender/bmesh/tools
parent3a05135e12415c202e3fe7d69f3722c3711a3701 (diff)
Fix T87259: Un-Subdivide creates duplicate faces
Add argument to BM_vert_collapse_faces to remove any faces that become duplicate as result of the collapse.
Diffstat (limited to 'source/blender/bmesh/tools')
-rw-r--r--source/blender/bmesh/tools/bmesh_decimate_dissolve.c4
-rw-r--r--source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c2
-rw-r--r--source/blender/bmesh/tools/bmesh_intersect.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/bmesh/tools/bmesh_decimate_dissolve.c b/source/blender/bmesh/tools/bmesh_decimate_dissolve.c
index 4a024f745ed..8b4a9bb26ac 100644
--- a/source/blender/bmesh/tools/bmesh_decimate_dissolve.c
+++ b/source/blender/bmesh/tools/bmesh_decimate_dissolve.c
@@ -439,7 +439,7 @@ void BM_mesh_decimate_dissolve_ex(BMesh *bm,
for (i = 0; i < vinput_len; i++) {
BMVert *v = vinput_arr[i];
if (LIKELY(v != NULL) && BM_vert_is_edge_pair(v)) {
- BM_vert_collapse_edge(bm, v->e, v, true, true); /* join edges */
+ BM_vert_collapse_edge(bm, v->e, v, true, true, true); /* join edges */
}
}
}
@@ -482,7 +482,7 @@ void BM_mesh_decimate_dissolve_ex(BMesh *bm,
BM_vert_is_edge_pair(v)
#endif
) {
- e_new = BM_vert_collapse_edge(bm, v->e, v, true, true); /* join edges */
+ e_new = BM_vert_collapse_edge(bm, v->e, v, true, true, true); /* join edges */
if (e_new) {
diff --git a/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c b/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c
index 0a512fdd592..c96a7be1adf 100644
--- a/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c
+++ b/source/blender/bmesh/tools/bmesh_decimate_unsubdivide.c
@@ -110,7 +110,7 @@ static bool bm_vert_dissolve_fan(BMesh *bm, BMVert *v)
if (tot_edge == 2) {
/* check for 2 wire verts only */
if (tot_edge_wire == 2) {
- return (BM_vert_collapse_edge(bm, v->e, v, true, true) != NULL);
+ return (BM_vert_collapse_edge(bm, v->e, v, true, true, true) != NULL);
}
}
else if (tot_edge == 4) {
diff --git a/source/blender/bmesh/tools/bmesh_intersect.c b/source/blender/bmesh/tools/bmesh_intersect.c
index 81b016e9601..c176210426b 100644
--- a/source/blender/bmesh/tools/bmesh_intersect.c
+++ b/source/blender/bmesh/tools/bmesh_intersect.c
@@ -1622,7 +1622,7 @@ bool BM_mesh_intersect(BMesh *bm,
}
if (ok) {
- BM_vert_collapse_edge(bm, v->e, v, true, false);
+ BM_vert_collapse_edge(bm, v->e, v, true, false, false);
}
}
}