while (Math.abs(prev_dist) < c_epsilon)
{
++corners_skipped_before;
int curr_no = p_start_no - corners_skipped_before;
if (curr_no < 0) return null;
<BUG>prev_corner = p_line_arr[curr_no].intersection_approx(p_line_arr[curr_no + 1]);
</BUG>
prev_dist = translate_line.distance_signed(prev_corner);
}
double next_dist = translate_line.distance_signed(next_corner);

while (Math.abs(prev_dist) < c_epsilon)
{
++corners_skipped_before;
int curr_no = p_start_no - corners_skipped_before;
if (curr_no < 0) return null;
prev_corner = p_line_arr.get(curr_no).intersection_approx(p_line_arr.get(curr_no + 1));
prev_dist = translate_line.distance_signed(prev_corner);
}
double next_dist = translate_line.distance_signed(next_corner);
