private static Rectangle[] buildRectList(BitSet subset,Rectangle[] rectList){
  Rectangle[] inside=new Rectangle[subset.cardinality()];
  int count=0;
  for (int i=subset.nextSetBit(0); i >= 0; i=subset.nextSetBit(i + 1)) {
    inside[count++]=new Rectangle(rectList[i]);
  }
  return inside;
}

private static Rectangle [ ] buildRectList ( BitSet subset , Rectangle [ ] rectList ) { Rectangle [ ] inside = new Rectangle [ subset . cardinality ( ) ] ; int count = 0 ; for ( int i = subset . nextSetBit ( 0 ) ; i >= 0 ; i = subset . nextSetBit ( i + 1 ) ) { inside [ count ++ ] = new Rectangle ( rectList [ i ] ) ; } return inside ; }
given a subset build a rectangle list of the subset of the original rectangle list
