public final boolean check_trace(Polyline p_polyline,int p_half_width,int p_layer,NetNosList p_net_no_arr,int p_clearance_class_no,int p_max_recursion_depth,int p_max_via_recursion_depth,int p_max_spring_over_recursion_depth){
  AwtreeShapeSearch search_tree=search_tree_manager.get_default_tree();
  int compensated_half_width=p_half_width + search_tree.get_clearance_compensation(p_clearance_class_no,p_layer);
  ArrayList<ShapeTile> trace_shapes=p_polyline.offset_shapes(compensated_half_width,0,p_polyline.corner_count());
  for (int index=0; index < trace_shapes.size(); ++index) {
    ShapeTile curr_trace_shape=trace_shapes.get(index);
    BrdFromSide from_side=new BrdFromSide(p_polyline,index + 1,curr_trace_shape);
    boolean check_shove_ok=shove_trace_algo.shove_trace_check(curr_trace_shape,from_side,null,p_layer,p_net_no_arr,p_clearance_class_no,p_max_recursion_depth,p_max_via_recursion_depth,p_max_spring_over_recursion_depth,null);
    if (!check_shove_ok)     return false;
  }
  return true;
}

public final boolean check_trace ( Polyline p_polyline , int p_half_width , int p_layer , NetNosList p_net_no_arr , int p_clearance_class_no , int p_max_recursion_depth , int p_max_via_recursion_depth , int p_max_spring_over_recursion_depth ) { AwtreeShapeSearch search_tree = search_tree_manager . get_default_tree ( ) ; int compensated_half_width = p_half_width + search_tree . get_clearance_compensation ( p_clearance_class_no , p_layer ) ; ArrayList < ShapeTile > trace_shapes = p_polyline . offset_shapes ( compensated_half_width , 0 , p_polyline . corner_count ( ) ) ; for ( int index = 0 ; index < trace_shapes . size ( ) ; ++ index ) { ShapeTile curr_trace_shape = trace_shapes . get ( index ) ; BrdFromSide from_side = new BrdFromSide ( p_polyline , index + 1 , curr_trace_shape ) ; boolean check_shove_ok = shove_trace_algo . shove_trace_check ( curr_trace_shape , from_side , null , p_layer , p_net_no_arr , p_clearance_class_no , p_max_recursion_depth , p_max_via_recursion_depth , p_max_spring_over_recursion_depth , null ) ; if ( ! check_shove_ok ) return false ; } return true ; }
checks , if a trace polyline with the input parameters can be inserted while shoving aside obstacle traces and vias .
