[buffer] fix generation of buffer's interior ring when there is a touching point,

by selecting the right operation
This commit is contained in:
Barend Gehrels 2017-11-15 11:58:27 +01:00
parent a4ba4dc276
commit 1d7d9a9a00
2 changed files with 2 additions and 4 deletions

View File

@ -345,6 +345,7 @@ struct traversal
if (op.operation == target_operation
&& ! op.visited.finished()
&& ! op.visited.visited()
&& (! result || select_source(turn_index, op.seg_id, previous_seg_id)))
{
selected_op_index = i;

View File

@ -297,10 +297,7 @@ void test_all()
test_one<linestring, polygon>("mysql_25662426", mysql_25662426, join_round32, end_round32, 1, 0, 1660.6673, 10);
// Test behaviour with different buffer sizes, generating internally turns on different locations
#if defined(BOOST_GEOMETRY_BUFFER_INCLUDE_FAILING_TESTS)
// The interior ring is not generated somehow. TODO
test_one<linestring, polygon>("mysql_25662426a_05", mysql_25662426a, join_round32, end_round32, 26.9999, 0.5);
#endif
test_one<linestring, polygon>("mysql_25662426a_05", mysql_25662426a, join_round32, end_round32, 27.6156, 0.5);
test_one<linestring, polygon>("mysql_25662426a_1", mysql_25662426a, join_round32, end_round32, 54.9018, 1.0);
test_one<linestring, polygon>("mysql_25662426a_2", mysql_25662426a, join_round32, end_round32, 103.6072, 2.0);
test_one<linestring, polygon>("mysql_25662426a_3", mysql_25662426a, join_round32, end_round32, 152.1163, 3.0);