Arrangements will certainly do the job.
Once all curves inserted, you can verify that the arrangement has two faces arr.number_of_faces()
; one unbounded face that has exactly one inner ccb (connected component of the boundary) and another face that has exactly one outer ccb.
Obtain the first face arr.faces_begin()
. If it's unbounded f−>is_unbounded()
, obtain its first inner boundary f−>holes_begin()
. Otherwise, obtain its outer boundary f−>outer_ccb()
.