private void visualizeRTreeEntry(SVGPlot svgp,Element layer,Projection2D proj,AbstractRStarTree<? extends N,E,?> rtree,E entry,int depth){
  SpatialComparable mbr=entry;
  if (settings.fill) {
    Element r=SVGHyperCube.drawFilled(svgp,INDEX + depth,proj,mbr);
    layer.appendChild(r);
  }
 else {
    Element r=SVGHyperCube.drawFrame(svgp,proj,mbr);
    SVGUtil.setCSSClass(r,INDEX + depth);
    layer.appendChild(r);
  }
  if (!entry.isLeafEntry()) {
    N node=rtree.getNode(entry);
    for (int i=0; i < node.getNumEntries(); i++) {
      E child=node.getEntry(i);
      if (!child.isLeafEntry()) {
        visualizeRTreeEntry(svgp,layer,proj,rtree,child,depth + 1);
      }
    }
  }
}

private void visualizeRTreeEntry ( SVGPlot svgp , Element layer , Projection2D proj , AbstractRStarTree < ? extends N , E , ? > rtree , E entry , int depth ) { SpatialComparable mbr = entry ; if ( settings . fill ) { Element r = SVGHyperCube . drawFilled ( svgp , INDEX + depth , proj , mbr ) ; layer . appendChild ( r ) ; } else { Element r = SVGHyperCube . drawFrame ( svgp , proj , mbr ) ; SVGUtil . setCSSClass ( r , INDEX + depth ) ; layer . appendChild ( r ) ; } if ( ! entry . isLeafEntry ( ) ) { N node = rtree . getNode ( entry ) ; for ( int i = 0 ; i < node . getNumEntries ( ) ; i ++ ) { E child = node . getEntry ( i ) ; if ( ! child . isLeafEntry ( ) ) { visualizeRTreeEntry ( svgp , layer , proj , rtree , child , depth + 1 ) ; } } } }
recursively draw the mbr rectangles .
