80a38bb1e43ad09975bc64d10c502043dc30c577
- Refactor tagging logic into a function to remove duplicate code The two phases of tagging were identical logic just with the variables and tag values swapped. This change ensures the two loops use matching behavior. - Adjust iteration to prevent restarting from the beginning of the mesh after each island. - Simplify and speed iteration tests. testing to ensure v->e is non-null is redundant - verts with no edges would never have passed `bm_vert_dissolve_fan_test` in the first place, so can't be tagged as `VERT_INDEX_INIT`. Re-testing `bm_vert_dissolve_fan_test(v)` is redundant - it was checked above, and during tagging, the topology does not change. Topology only changes later, after tagging is complete. Therefore it's guaranteed to return the same result as the first time. - Simplify loop logic, rename vars for clarity offset and nth were constants, and depth was what causes alternation. However none of that math is necessary - it can simply be done with call order. 'seek_a' and 'seek_b' were renamed to what they actually are - lists of verts that are tagged for collapse and ignore, respectively. Further, by checking if any verts were tagged during the first iteration pass, the second iteration pass can be avoided entirely if it will perform no work. Ref: !135212
…
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%
