</BUG>
{
return null;
}
<BUG>next_corner = p_line_arr[curr_no].intersection_approx(p_line_arr[curr_no + 1]);
</BUG>
next_dist = translate_line.distance_signed(next_corner);
}
if (Signum.of(prev_dist) != Signum.of(next_dist))
{

double next_dist = translate_line.distance_signed(next_corner);
while (Math.abs(next_dist) < c_epsilon)
{
++corners_skipped_after;
int curr_no = p_start_no + 3 + corners_skipped_after;
if (curr_no >= p_line_arr.size() - 2)
{
return null;
}
next_corner = p_line_arr.get(curr_no).intersection_approx(p_line_arr.get(curr_no + 1));
next_dist = translate_line.distance_signed(next_corner);
}
if (Signum.of(prev_dist) != Signum.of(next_dist))
{
