public final boolean split_traces_keep_point(){
  if (keep_point == null)   return false;
  ItemSelectionFilter filter=new ItemSelectionFilter(ItemSelectionChoice.TRACES);
  Collection<BrdItem> picked_items=r_board.pick_items(keep_point.keep_point,keep_point.on_layer,filter);
  for (  BrdItem curr_item : picked_items) {
    BrdTracep a_trace=(BrdTracep)curr_item;
    int line_idx=a_trace.polyline_find_line_idx(keep_point.keep_point);
    if (line_idx < 1)     continue;
    ArrayList<BrdTracep> clean_list=a_trace.split_with_end_point(line_idx,keep_point.keep_point);
    return clean_list.size() > 0;
  }
  return false;
}

public final boolean split_traces_keep_point ( ) { if ( keep_point == null ) return false ; ItemSelectionFilter filter = new ItemSelectionFilter ( ItemSelectionChoice . TRACES ) ; Collection < BrdItem > picked_items = r_board . pick_items ( keep_point . keep_point , keep_point . on_layer , filter ) ; for ( BrdItem curr_item : picked_items ) { BrdTracep a_trace = ( BrdTracep ) curr_item ; int line_idx = a_trace . polyline_find_line_idx ( keep_point . keep_point ) ; if ( line_idx < 1 ) continue ; ArrayList < BrdTracep > clean_list = a_trace . split_with_end_point ( line_idx , keep_point . keep_point ) ; return clean_list . size ( ) > 0 ; } return false ; }
splits the traces containing this . keep_point if this . keep_point ! = null this actually splits the trace since lower down pieces are inserted in the board , if successful
