Note: I had to add an epsilon on top of the threshould for SIMVERT_NORMAL. Otherwise I was getting differences such as 0.000000something when comparing supposed-to-be-identical normals. The way I see it, the Threshold option is a user feature, where users can control more or less what they want selected. While the epsilon is a non-negotiable requirement for our float comparison here. This includes support for: * SIMVERT_NORMAL * SIMVERT_FACE * SIMVERT_EDGE Not included and currently not supported/disabled: * SIMVERT_VGROUP * SIMEDGE_* * SIMFACE_* While we are working on this, we prevent users from using the non-ported modes. Note: the bmo_similar.c file is still around, to be removed in the near future. Everyone: Please fell free to jump in and help tackling the missing modes. For details on the implementation discussion: https://developer.blender.org/D3674