/**
   * Supprime une instance de <code>e</code> de cette node. Utilise le QuadTree pour localiser
   * l'objet à supprimer. Effectue un clear() sur le parent si il s'agissait du dernier élément
   * contenu dans la node parent
   *
   * @param e L'objet à supprimer
   * @return <code>true</code> si l'élément a été supprimé
   */
  public boolean remove(E e) {
    if (e == null) {
      return false;
    }
    AbstractQuadTreeNode<E> node = (AbstractQuadTreeNode<E>) getElementNode(e);
    if (node == null) {
      return false;
    } else {
      boolean ret = node.elements.remove(e);

      // vérification : est ce que cet élément était le dernier élément contenu dans la node parent.
      // Si oui : effacer les enfants dans le parent.
      if (parent.isEmpty()) {
        parent.clear();
      }

      return ret;
    }
  }