#include <CGAL/Arr_observer.h>
 
#include "arr_exact_construction_segments.h"
#include "arr_print.h"
 
public:
 
  virtual void before_split_face(Face_handle, Halfedge_handle e) {
    std::cout << "-> The insertion of :  [ " << e->curve()
              << " ]  causes a face to split.\n";
  }
 
  virtual void before_merge_face(Face_handle, Face_handle, Halfedge_handle e) {
    std::cout << "-> The removal of :  [ " << e->curve()
              << " ]  causes two faces to merge.\n";
  }
};
 
int main() {
  
  Arrangement arr;
  My_observer obs(arr);
  insert_non_intersecting_curve(arr, Segment(Point(-1, 0), Point(0, 1)));
  insert_non_intersecting_curve(arr, Segment(Point(0, 1), Point(1, 0)));
  insert_non_intersecting_curve(arr, Segment(Point(1, 0), Point(0, -1)));
  insert_non_intersecting_curve(arr, Segment(Point(0, -1), Point(-1, 0)));
 
  
  
  Segment s_v(Point(0, -1), Point(0, 1));
  Halfedge_handle e_v = insert_non_intersecting_curve(arr, s_v);
  insert(arr, Segment(Point(-1, 0), Point(1, 0))); 
  print_arrangement_size(arr);
 
  
  remove_edge(arr, e_v);            
  print_arrangement_size(arr);
 
  return 0;
}
typename Arrangement_::Observer Arr_observer
Arr_observer<Arrangement_2> is an alias for Aos_observer<Arrangement_on_surface_2>,...
Definition: Arr_observer.h:13