public static Tile[] perimeter(Box2D area, World world) {
    final int
      minX = (int) Math.floor(area.xpos()),
      minY = (int) Math.floor(area.ypos()),
      maxX = (int) (minX + area.xdim() + 1),
      maxY = (int) (minY + area.ydim() + 1),
      wide = 1 + maxX - minX,
      high = 1 + maxY - minY ;
    ///if (wide < 3) I.say("WIDE IS: "+wide+", area: "+area) ;
    final Tile perim[] ;
    if (wide == high && wide <= 6) perim = PERIM_ARRAYS[wide - 3] ;
    else perim = new Tile[(wide + high - 2) * 2] ;
    int tX, tY, pI = 0 ;
    for (tX = minX ; tX++ < maxX ;) perim[pI++] = world.tileAt(tX, minY) ;
    for (tY = minY ; tY++ < maxY ;) perim[pI++] = world.tileAt(maxX, tY) ;
    for (tX = maxX ; tX-- > minX ;) perim[pI++] = world.tileAt(tX, maxY) ;
    for (tY = maxY ; tY-- > minY ;) perim[pI++] = world.tileAt(minX, tY) ;
    return perim ;
  }