[relate] Partially fix Point-sized Linestrings support in relate(L/L).

The latest robustness upgrade introduced changes that broke the support:
1. degenerated turns are now method_none+c/c. This is fixed by this commit.
2. ratios aren't calculated for degenerated turns (proviously distances were calculated by AssignPolicy).
This commit is contained in:
Adam Wulkiewicz
2014-04-24 01:55:21 +02:00
parent 85b7589bb1
commit d74deb998d

View File

@@ -399,7 +399,7 @@ struct linear_linear
{
// degenerated turn
if ( op == overlay::operation_continue
&& it->method == overlay::method_collinear
&& it->method == overlay::method_none
&& m_exit_watcher.is_outside(*it)
/*&& ( m_exit_watcher.get_exit_operation() == overlay::operation_none
|| ! turn_on_the_same_ip<op_id>(m_exit_watcher.get_exit_turn(), *it) )*/ )
@@ -759,7 +759,7 @@ struct linear_linear
update<interior, interior, '0', transpose_result>(res);
}
// 'c' should be last for the same IP so we know that the next point won't be the same
// operation 'c' should be last for the same IP so we know that the next point won't be the same
update<interior, exterior, '1', transpose_result>(res);
m_degenerated_turn_ptr = boost::addressof(turn);