Split edges algorithm

What is the algorithm used to create split edges?

You can read it here and lower level functions here.

Roughly, it is something like:

  • tag all the edges that need to be split, and the vertices at either end of those edges
  • for each edge e in the mesh: if e is tagged: for each vertex v in e: if v is still tagged:
    • untag v
    • split edge e at vertex v (this involves a lot of things in the low level BMesh structure, too much to explain here, especially since I don’t know if that’s what you care about)