001a2b3f4df52f4dcd36a3550907cfb45aca8185
Use of BM_faces_join_pair can result in an invalid mesh with doubled
faces. [0] added an assert to identify when this could occur.
This case has been inspected, and allowing the auto-join logic in
BM_faces_join_pair() to delete the doubled face does not negatively
impact iteration or processing:
1. The eheap and eheap_table used here deal only with edges, not faces.
2. Loop iteration is unchanged.
A conversion to use of BM_ITER_MESH_MUTABLE is not applicable because
the iteration is done on the edge heap, not the mesh.
3. The recomputation of the face normals of each combined face still
works properly.
Ref !144653
[0]: 702efd6846
…
Blender
Blender is the free and open source 3D creation suite. It supports the entirety of the 3D pipeline—modeling, rigging, animation, simulation, rendering, compositing, motion tracking and video editing.
Project Pages
Development
License
Blender as a whole is licensed under the GNU General Public License, Version 3. Individual files may have a different but compatible license.
See blender.org/about/license for details.
Description
Languages
C++
78%
Python
14.9%
C
2.9%
GLSL
1.9%
CMake
1.2%
Other
0.9%
