private boolean itera_connect(PlaPointInt p_from_point,PlaPointInt p_to_point){
  ArrayList<PlaPointInt> corners=angled_connection(p_from_point,p_to_point);
  boolean connection_succeeded=true;
  for (int index=1; index < corners.size(); ++index) {
    PlaPointInt from_corner=corners.get(index - 1);
    PlaPointInt to_corner=corners.get(index);
    TimeLimit time_limit=new TimeLimit(s_CHECK_FORCED_TRACE_TIME_MAX);
    while (!from_corner.equals(to_corner)) {
      PlaPointInt curr_ok_point=r_board.insert_trace(from_corner,to_corner,pen_half_width_arr[layer_active_no],layer_active_no,net_nos,clearance_class,max_shove_trace_recursion_depth,max_shove_via_recursion_depth,max_spring_over_recursion_depth,itera_settings.trace_pullt_min_move,!is_stitch_mode,time_limit);
      if (curr_ok_point == null) {
        r_board.undo(null);
        return true;
      }
      if (curr_ok_point.equals(from_corner) && itera_settings.is_automatic_neckdown()) {
        curr_ok_point=try_neckdown_at_end(from_corner,to_corner);
      }
      if (curr_ok_point.equals(from_corner)) {
        prev_corner=from_corner;
        connection_succeeded=false;
        break;
      }
      from_corner=curr_ok_point;
    }
  }
  return connection_succeeded;
}

private boolean itera_connect ( PlaPointInt p_from_point , PlaPointInt p_to_point ) { ArrayList < PlaPointInt > corners = angled_connection ( p_from_point , p_to_point ) ; boolean connection_succeeded = true ; for ( int index = 1 ; index < corners . size ( ) ; ++ index ) { PlaPointInt from_corner = corners . get ( index - 1 ) ; PlaPointInt to_corner = corners . get ( index ) ; TimeLimit time_limit = new TimeLimit ( s_CHECK_FORCED_TRACE_TIME_MAX ) ; while ( ! from_corner . equals ( to_corner ) ) { PlaPointInt curr_ok_point = r_board . insert_trace ( from_corner , to_corner , pen_half_width_arr [ layer_active_no ] , layer_active_no , net_nos , clearance_class , max_shove_trace_recursion_depth , max_shove_via_recursion_depth , max_spring_over_recursion_depth , itera_settings . trace_pullt_min_move , ! is_stitch_mode , time_limit ) ; if ( curr_ok_point == null ) { r_board . undo ( null ) ; return true ; } if ( curr_ok_point . equals ( from_corner ) && itera_settings . is_automatic_neckdown ( ) ) { curr_ok_point = try_neckdown_at_end ( from_corner , to_corner ) ; } if ( curr_ok_point . equals ( from_corner ) ) { prev_corner = from_corner ; connection_succeeded = false ; break ; } from_corner = curr_ok_point ; } } return connection_succeeded ; }
tries to make a trace connection from p_from_point to p_to_point according to the angle restriction .
