public Set<BrdItem> pick_items(PlaPoint p_location,int p_layer,ItemSelectionFilter p_filter){
  Set<BrdItem> result=new TreeSet<BrdItem>();
  ShapeTileBox point_shape=p_location.to_box();
  Collection<AwtreeObject> overlaps=overlapping_objects(point_shape,p_layer);
  for (  AwtreeObject curr_object : overlaps) {
    if (!(curr_object instanceof BrdItem))     continue;
    BrdItem curr_item=(BrdItem)curr_object;
    if (!curr_item.is_selected_by_filter(p_filter))     continue;
    result.add(curr_item);
  }
  return result;
}

public Set < BrdItem > pick_items ( PlaPoint p_location , int p_layer , ItemSelectionFilter p_filter ) { Set < BrdItem > result = new TreeSet < BrdItem > ( ) ; ShapeTileBox point_shape = p_location . to_box ( ) ; Collection < AwtreeObject > overlaps = overlapping_objects ( point_shape , p_layer ) ; for ( AwtreeObject curr_object : overlaps ) { if ( ! ( curr_object instanceof BrdItem ) ) continue ; BrdItem curr_item = ( BrdItem ) curr_object ; if ( ! curr_item . is_selected_by_filter ( p_filter ) ) continue ; result . add ( curr_item ) ; } return result ; }
returns the list of items on the board , whose shape on layer p_layer contains the point at p_location . if p_layer < 0 , the layer is ignored .
