Je sais que c'est une commande d'Alexis @xymus, mais ca m'a l'air vraiment hyper-spécialisé.
Et vu l'implémentation, pourquoi ne pas sortir le around qui pourrait servir en soit ?

~~~
redef class Boxed[N]
   # Create a bounding box that englobes the actual bounding box.
   # `dist` is the distance between the inner boundaries and the outer boundaries.
   # ~~~
   # var p = new Point[Int](5,10)
   # var b = p.box_around(3)
   # assert b.top == 2 and b.bot = 8 and b.left == 7 and b.right == 13
   # ~~~
   # TODO: handle negative dist
   fun box_around(dist: N) do return new new Box[N].lrtb(left - dist, right + dist, top + dist, bottom - dist)
end
~~~

ensuite le search_overlap_around devient inutile car le client peut élégamment écrire

~~~
   var qt = new QuadTree...
   var x: Boxed = ...
   for z in qt.search_overlap(x.box_around(5)) do ...
~~~