Every plane is bounded by a sequence of edges, and every edge should be shared by two planes. The edges that bound a plane are stored as a sequence of half-edges. Each half-edge references the starting vertex of the edge, the half-edge pointing in the opposite direction (belonging to the plane that shares the edge), and the next half-edge on the same plane.