BMesh: remove doubles fix/optimization
authorCampbell Barton <ideasman42@gmail.com>
Thu, 24 Dec 2015 09:16:41 +0000 (20:16 +1100)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 24 Dec 2015 09:30:05 +0000 (20:30 +1100)
commit9a1ea681e6fb840b31e43096fb0178e972eea1fc
tree418cef0b8617002b91d7f75a4a9f8afe1faba243
parent4a356d767b3a3481c836e0a5b4e5c56a6f92efc2
BMesh: remove doubles fix/optimization

Changes to remove doubles face creation,
Recent change to remove doubles broke when the new faces already existed (rare occurrence),
however theres no point to return an existing double face.

Now check if the face exists before creating it.

Other changes:

- avoid 2x hash lookups on all mapped verts.
- fill in the vert array instead of calculating from edges.
- remove inefficient search of entire edge-array before adding to it.
  (flag verts to ensure they're not used multiple times).
- move logic for transfusing edge-flags to edge creation.
source/blender/bmesh/operators/bmo_removedoubles.c