let del_zone_y (y : float) : unit =
let dist = ref 0. in
let rec aux l res =
match l with [] -> List.rev res
|(((click_x,click_y),zone)::ls) ->
if(click_y=y)
then ( dist:= max !dist ((max_l zone) -. (min_l zone)) ;
aux ls res)
else (aux ls (((click_x,click_y),zone)::res));
in infos_zones:=(aux (!infos_zones) []);
let rec aux0 l_infos_zones res =
match l_infos_zones with [] -> List.rev res
|(((absX,ordY),points_list)::ls) ->
if(ordY <= y)
then aux0 ls (((absX,(ordY +. !dist)),(List.map (fun p -> p +. !dist) points_list))::res)
else aux0 ls (((absX,ordY),points_list)::res)
in infos_zones:= aux0 (!infos_zones) [];