; center $f1 { $f2 { $f3 } }
;
; centers the zoom window on the coordinates
; the zoom window is kept with the same size

if ($dim == 1) then
  set f1 = $_
  set wdt = ($zoom_1d[2] - $zoom_1d[1])
  set z1 = (int($f1-$wdt/2))
  set z2 = (int($f1+$wdt/2))
  if ($z1 < 1) set z1 = 1
  if ($z2 > $si1_1d) set z2 = $si1_1d
  zoom 1 $z1 $z2
elsif ($dim == 2) then
  set f1 = $_
  set f2 = $_
  set wdt = ($zoom_2d[4] - $zoom_2d[2])
  set hgt = ($zoom_2d[3] - $zoom_2d[1])
  set z1 = (int($f1-$hgt/2))
  set z2 = (int($f2-$wdt/2))
  set z3 = (int($f1+$hgt/2))
  set z4 = (int($f2+$wdt/2))
  if ($z1 < 1) set z1 = 1
  if ($z2 < 1) set z2 = 1
  if ($z3 > $si1_2d) set z3 = $si1_2d
  if ($z4 > $si2_2d) set z4 = $si2_2d
  zoom 1 $z1 $z2 $z3 $z4
elsif ($dim ==3) then
  set f1 = $_
  set f2 = $_
  set f3 = $_
  set lnt = ($zoom_3d[2] - $zoom_3d[1])
  set hgt = ($zoom_3d[4] - $zoom_3d[3])
  set wdt = ($zoom_3d[6] - $zoom_3d[5])
  set z1 = (int($f1-$lnt/2))
  set z2 = (int($f2-$hgt/2))
  set z3 = (int($f3-$wdt/2))
  set z4 = (int($f1+$lnt/2))
  set z5 = (int($f2+$hgt/2))
  set z6 = (int($f3+$wdt/2))
  if ($z1 < 1) set z1 = 1
  if ($z2 < 1) set z2 = 1
  if ($z3 < 1) set z3 = 1
  if ($z4 > $si1_3d) set z4 = $si1_3d
  if ($z5 > $si2_3d) set z5 = $si2_3d
  if ($z6 > $si3_3d) set z6 = $si3_3d
  if ($plane[1] s= 'F1') then
     zoom 1 $z1 $z4 $z2 $z3 $z5 $z6
  elsif ($plane[1] s= 'F2') then
     zoom 1 $z2 $z5 $z1 $z3 $z4 $z6
  elsif ($plane[1] s= 'F3') then
     zoom 1 $z3 $z6 $z1 $z2 $z4 $z5
  endif
endif
