question: public BrdFromSide calc_from_side ( ShapeTile p_shape , PlaPointInt p_shape_center , int p_layer , int p_offset , int p_cl_class ) { NetNosList empty_arr = NetNosList . EMPTY ; ShapeTile offset_shape = p_shape . offset ( p_offset ) ; for ( int index = 0 ; index < offset_shape . border_line_count ( ) ; ++ index ) { ShapeTile check_shape = calc_check_chape_for_from_side ( p_shape , p_shape_center , offset_shape . border_line ( index ) ) ; if ( r_board . check_trace ( check_shape , p_layer , empty_arr , p_cl_class , null ) ) { return new BrdFromSide ( index , null ) ; } } for ( int index = 0 ; index < offset_shape . border_line_count ( ) ; ++ index ) { ShapeTile check_shape = calc_check_chape_for_from_side ( p_shape , p_shape_center , offset_shape . border_line ( index ) ) ; if ( r_board . check_trace ( check_shape , p_layer , empty_arr , 0 , null ) ) { return new BrdFromSide ( index , null ) ; } } return BrdFromSide . NOT_CALCULATED ; }
target:  Looks for a side of p_shape, so that a trace line from the shape center to the nearest point on this side does not conflict with any obstacles.