Welding operator should have an option to not produce incorrect geometry

Blender allows for some very unique topology which other software generally doesn’t allow. While it has some benefits (for example workflow of solitary interconnected edges combined with skin modifier for quick organic surfaces modeling), it often does more harm than good, especially when it comes to making geometry for game engines.

I am not proposing for this ability to go away, but tools which can result in this kind of controversial topology, such as Weld operator, should have an option to prevent it. It’s not uncommon for me to run Weld operator from time to time to make sure no edges are overlapping, just to find out many incorrectly fused edges down the road and having to spend up a lot of time to clean up the damage.

Here are two examples of controversial topology which use of Weld operator can result to:

One is a simple plane with cut in the middle and another separate quad perpendicular to it with the vertices sharing same location. Upon welding, Blender creates border vertice which shares more than two border edges.

Other one is a cube with a smaller cube inside where location of one of the corner vertex of both cubes was the same. After weld, both cube vertices are now bound to share same location, which is again very odd as they are discrete mesh elements. (By mesh elements I mean discrete mesh pieces that did not have any topological connection prior to welding).

The solution I’d propose is an additional option for weld operator to not weld vertices between separate mesh elements. That should prevent most of the problematic cases.