I’m working on doubly connected edge list. In the image below I need to add a new edge (consisting of halfedges $ g$ and $ h$ ). When adding a new edge we need to assign each half edge a previous and next half edges. In this example edge $ g$ would have halfedge $ f$ and $ h$ as previous and next halfedges respectively. And edge $ h$ would have halfedge $ g$ and $ a$ as previous and next halfedges respectively. If we ignore for a second them being linked to each other, $ g$ and $ h$ are linked to the pair $ f$ and $ a$ . I hope this makes sense. My question is when adding a new edge, how do we know how to choose the correct pair to link to? In this example we could link our halfedges to the pair $ a, f$ or $ c,b$ , or $ e,d$ . Do we have to resort to linear algebra, doing cross/dot product calculations to calculate what pair of halfedges to choose, based on the geometry of the edges? Am I possibly going in the completely wrong direction?

To get the potential canditates of pair of halfedges to link to, I iterate through all halfedges linked to vertex $ v$ , which here would be $ a,c,e$ and for each I find the previous halfedge which would $ f, b,d$ respectively.