I'm building a video game in which a 2D planar graph is constructed edge by edge, and the faces of the graph need to be known at any given point. By "faces", I mean cycles of the graph that do not have any edges cutting through them on the 2D plane.
I'm aware of cycle basis and have implemented it with excellent results, but I was wondering whether there were algorithms/data structures that maintained an invariant while building a set of faces incrementally while the graph was also being built.
For reference, here is a video I found on YouTube.
I wish to understand how/if this is possible to do with minimal computation at every addition of one edge to the graph. I've also tried looking at half-edge and winged edge implementations of a 2D planar graph, but I have found nothing so far that gives me insight into this. Thanks a lot!