[Boost-bugs] [Boost C++ Libraries] #13645: boost::geometry::simplify broken in 1.67

Subject: [Boost-bugs] [Boost C++ Libraries] #13645: boost::geometry::simplify broken in 1.67
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2018-07-28 18:51:42


#13645: boost::geometry::simplify broken in 1.67
-------------------------------------+----------------------------
 Reporter: Eyal Soha <eyalsoha@…> | Owner: Barend Gehrels
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: geometry
  Version: Boost 1.67.0 | Severity: Regression
 Keywords: boost geometry simplify |
-------------------------------------+----------------------------
 bg::simplify is broken in version 1.67. In version 1.66, it works fine.

 This is the code that I ran:

           std::cout << "Ring is: " << bg::wkt(*ring) << std::endl;
           std::cout << "Tolerance is: " << mill->tolerance;
           toolpath_optimised.push_back(make_shared<icoords>());
           bg::simplify(*ring, *(toolpath_optimised.back()),
 mill->tolerance);
           std::cout << "Simplified result is: " <<
 bg::wkt(*(toolpath_optimised.back())) << std::endl;

 With boost 1.66, the first coordinate of the input and the first
 coordinate of the output are the same. With 1.67, the first coordinate of
 the input and the first coordinate of the output are not the same. This
 is incorrect behavior. Notice in the output below.

 1.66 stdout:

 POLYGON((1.20884 3.81395,1.19293 3.84469,1.1663 3.89695,1.13837
 3.9535,1.11221 4.01006,1.08784 4.06661,1.06524 4.12317,1.04518
 4.17544,1.02628 4.22659,1.00887 4.27775,0.99294 4.3289,0.978492
 4.38006,0.964488 4.43232,0.952375 4.47996,0.941568 4.5276,0.932065
 4.57524,0.923868 4.62288,0.91559 4.67514,0.908966 4.72079,0.903551
 4.76643,0.899345 4.81207,0.896348 4.85771,0.893609 4.90997,0.891839
 4.95499,0.89125 5,0.891839 5.04501,0.893609 5.09003,0.896348
 5.14229,0.899345 5.18793,0.903551 5.23357,0.908966 5.27921,0.91559
 5.32486,0.923868 5.37712,0.932065 5.42476,0.941568 5.4724,0.952375
 5.52004,0.964488 5.56768,0.978492 5.61994,0.99294 5.6711,1.00887
 5.72225,1.02628 5.77341,1.04518 5.82456,1.06524 5.87683,1.08784
 5.93338,1.11221 5.98993,1.13836 6.04648,1.16629 6.10304,1.19292
 6.1553,1.22687 6.21973,1.26309 6.28417,1.30155 6.3486,1.34227
 6.41304,1.37621 6.4653,1.42695 6.54109,1.48072 6.61688,1.53754
 6.69267,1.59739 6.76846,1.63972 6.82073,1.67765 6.86689,1.71667
 6.91305,1.75679 6.9592,1.79801 7.00536,1.84033 7.05152,1.88375
 7.09768,1.97387 7.19,2.02613 7.24226,2.11566 7.32986,2.20903
 7.41746,2.30626 7.50507,2.40733 7.59267,2.52209 7.582,2.57436
 7.57651,2.69697 7.56203,2.81959 7.54438,2.94221 7.52354,3.06483
 7.49953,3.04552 7.41246,3.0034 7.21862,2.9966 7.18665,2.99153
 7.16271,2.76836 6.10662,2.76698 6.10013,2.76489 6.09027,2.74216
 5.97705,2.6906 5.70316,2.68837 5.69147,2.67984 5.6473,2.67213
 5.60519,2.66543 5.564,2.65315 5.48319,2.65167 5.47366,2.63996
 5.39965,2.63532 5.36774,2.63159 5.33635,2.63138 5.33435,2.6307
 5.32801,2.62318 5.26016,2.61595 5.2276,2.60164 5.168,2.5906
 5.12662,2.57778 5.08701,2.55845 5.03242,2.54629 5.00067,2.53279
 4.97027,2.50892 4.92023,2.49607 4.89498,2.48215 4.87082,2.45406
 4.82499,2.44052 4.80413,2.42605 4.78419,2.39396 4.74237,2.37944
 4.72443,2.36407 4.70735,2.32808 4.66943,2.31204 4.65339,2.29516
 4.6382,2.2553 4.60415,2.23694 4.58929,2.21769 4.57531,2.17388
 4.54521,2.15204 4.53104,2.1292 4.51786,2.08948 4.4963,2.08131
 4.49177,2.02613 4.46059,2 4.44505,1.97387 4.42796,1.89344 4.37298,1.86199
 4.3507,1.83015 4.32662,1.67482 4.2054,1.63047 4.17003,1.58508
 4.13234,1.20884 3.81395,1.22146 3.7599,1.23538 3.70586,1.2506
 3.65182,1.26713 3.59778,1.28496 3.54373,1.30409 3.48969,1.32452
 3.43565,1.34625 3.38161,1.36696 3.33161,1.39856 3.25817,1.43253
 3.18474,1.46887 3.1113,1.50757 3.03787,1.54864 2.96443,1.59208
 2.891,1.63788 2.81756,1.68606 2.74413,1.73659 2.67069,1.7895
 2.59726,1.84477 2.52382,1.90241 2.45039,1.96242 2.37695,2.0248
 2.30352,2.08954 2.23008,2.15665 2.15665,2.26607 2.15409,2.3755
 2.15435,2.48493 2.15744,2.59435 2.16335,2.70378 2.17208,2.8132
 2.18363,2.92263 2.19801,3.03206 2.2152,3.14148 2.23522,3.25091
 2.25806,3.36033 2.28373,3.46976 2.31221,3.57918 2.34352,3.68861
 2.37765,3.79804 2.4146,3.90746 2.45438,3.77286 2.81292,3.72912
 2.9318,3.68819 3.04785,3.65009 3.16108,3.61482 3.27149,3.58236
 3.37908,3.55273 3.48384,3.52591 3.58578,3.50192 3.6849,3.48076
 3.7812,3.46241 3.87467,3.44689 3.96533,3.43419 4.05316,3.42431
 4.13817,3.41726 4.22035,3.41302 4.29971,3.41161 4.37626,3.41161
 4.44635,3.41166 4.44702,3.42417 4.61343,3.42484 4.62197,3.43487
 4.74505,3.43551 4.75253,3.44435 4.85207,3.44499 4.859,3.45368
 4.94885,3.45436 4.95561,3.46376 5.04538,3.46451 5.05229,3.47563
 5.15095,3.47649 5.15837,3.49103 5.27952,3.49207 5.28796,3.49295
 5.29492,3.49686 5.32917,3.5 5.36419,3.5 5.44571,3.5 5.45486,3.5
 5.65575,3.49821 5.68007,3.49738 5.6905,3.49516 5.71697,3.46645
 6.03898,3.46523 6.05293,3.39658 6.85028,3.39459 6.87361,3.34281
 7.48824,3.27331 7.49253,3.20382 7.49584,3.13432 7.49817,3.06483 7.49953))

 Tolerance is: 0.0004

 Simplified result is: POLYGON((1.20884 3.81395,1.1663 3.89695,1.13837
 3.9535,1.11221 4.01006,1.08784 4.06661,1.06524 4.12317,1.02628
 4.22659,1.00887 4.27775,0.99294 4.3289,0.978492 4.38006,0.952375
 4.47996,0.941568 4.5276,0.932065 4.57524,0.91559 4.67514,0.908966
 4.72079,0.903551 4.76643,0.899345 4.81207,0.896348 4.85771,0.891839
 4.95499,0.89125 5,0.891839 5.04501,0.893609 5.09003,0.899345
 5.18793,0.903551 5.23357,0.908966 5.27921,0.923868 5.37712,0.932065
 5.42476,0.941568 5.4724,0.952375 5.52004,0.978492 5.61994,0.99294
 5.6711,1.00887 5.72225,1.02628 5.77341,1.06524 5.87683,1.08784
 5.93338,1.11221 5.98993,1.13836 6.04648,1.16629 6.10304,1.19292
 6.1553,1.22687 6.21973,1.26309 6.28417,1.30155 6.3486,1.34227
 6.41304,1.37621 6.4653,1.42695 6.54109,1.48072 6.61688,1.53754
 6.69267,1.59739 6.76846,1.67765 6.86689,1.71667 6.91305,1.75679
 6.9592,1.79801 7.00536,1.84033 7.05152,1.88375 7.09768,1.97387
 7.19,2.02613 7.24226,2.11566 7.32986,2.20903 7.41746,2.30626
 7.50507,2.40733 7.59267,2.52209 7.582,2.57436 7.57651,2.69697
 7.56203,2.81959 7.54438,2.94221 7.52354,3.06483 7.49953,2.99153
 7.16271,2.76489 6.09027,2.74216 5.97705,2.67213 5.60519,2.63532
 5.36774,2.62318 5.26016,2.60164 5.168,2.5906 5.12662,2.57778
 5.08701,2.55845 5.03242,2.54629 5.00067,2.53279 4.97027,2.50892
 4.92023,2.49607 4.89498,2.48215 4.87082,2.45406 4.82499,2.44052
 4.80413,2.42605 4.78419,2.39396 4.74237,2.37944 4.72443,2.36407
 4.70735,2.32808 4.66943,2.31204 4.65339,2.29516 4.6382,2.2553
 4.60415,2.23694 4.58929,2.21769 4.57531,2.17388 4.54521,2.15204
 4.53104,2.02613 4.46059,2 4.44505,1.97387 4.42796,1.89344 4.37298,1.86199
 4.3507,1.83015 4.32662,1.67482 4.2054,1.63047 4.17003,1.58508
 4.13234,1.20884 3.81395,1.22146 3.7599,1.23538 3.70586,1.2506
 3.65182,1.26713 3.59778,1.28496 3.54373,1.30409 3.48969,1.32452
 3.43565,1.36696 3.33161,1.39856 3.25817,1.43253 3.18474,1.46887
 3.1113,1.50757 3.03787,1.54864 2.96443,1.59208 2.891,1.63788
 2.81756,1.68606 2.74413,1.73659 2.67069,1.7895 2.59726,1.84477
 2.52382,1.90241 2.45039,1.96242 2.37695,2.0248 2.30352,2.08954
 2.23008,2.15665 2.15665,2.26607 2.15409,2.3755 2.15435,2.48493
 2.15744,2.59435 2.16335,2.70378 2.17208,2.8132 2.18363,2.92263
 2.19801,3.03206 2.2152,3.14148 2.23522,3.25091 2.25806,3.36033
 2.28373,3.46976 2.31221,3.57918 2.34352,3.68861 2.37765,3.79804
 2.4146,3.90746 2.45438,3.77286 2.81292,3.72912 2.9318,3.68819
 3.04785,3.65009 3.16108,3.61482 3.27149,3.58236 3.37908,3.55273
 3.48384,3.52591 3.58578,3.50192 3.6849,3.48076 3.7812,3.46241
 3.87467,3.44689 3.96533,3.43419 4.05316,3.42431 4.13817,3.41726
 4.22035,3.41302 4.29971,3.41161 4.37626,3.41161 4.44635,3.42484
 4.62197,3.43487 4.74505,3.44499 4.859,3.46451 5.05229,3.47649
 5.15837,3.49686 5.32917,3.5 5.36419,3.5 5.65575,3.49516 5.71697,3.46523
 6.05293,3.39658 6.85028,3.34281 7.48824,3.27331 7.49253,3.20382
 7.49584,3.13432 7.49817,3.06483 7.49953))

 1.67 stdout:

 Ring is: POLYGON((1.20884 3.81395,1.19293 3.84469,1.1663 3.89695,1.13837
 3.9535,1.11221 4.01006,1.08784 4.06661,1.06524 4.12317,1.04518
 4.17544,1.02628 4.22659,1.00887 4.27775,0.99294 4.3289,0.978492
 4.38006,0.964488 4.43232,0.952375 4.47996,0.941568 4.5276,0.932065
 4.57524,0.923868 4.62288,0.91559 4.67514,0.908966 4.72079,0.903551
 4.76643,0.899345 4.81207,0.896348 4.85771,0.893609 4.90997,0.891839
 4.95499,0.89125 5,0.891839 5.04501,0.893609 5.09003,0.896348
 5.14229,0.899345 5.18793,0.903551 5.23357,0.908966 5.27921,0.91559
 5.32486,0.923868 5.37712,0.932065 5.42476,0.941568 5.4724,0.952375
 5.52004,0.964488 5.56768,0.978492 5.61994,0.99294 5.6711,1.00887
 5.72225,1.02628 5.77341,1.04518 5.82456,1.06524 5.87683,1.08784
 5.93338,1.11221 5.98993,1.13836 6.04648,1.16629 6.10304,1.19292
 6.1553,1.22687 6.21973,1.26309 6.28417,1.30155 6.3486,1.34227
 6.41304,1.37621 6.4653,1.42695 6.54109,1.48072 6.61688,1.53754
 6.69267,1.59739 6.76846,1.63972 6.82073,1.67765 6.86689,1.71667
 6.91305,1.75679 6.9592,1.79801 7.00536,1.84033 7.05152,1.88375
 7.09768,1.97387 7.19,2.02613 7.24226,2.11566 7.32986,2.20903
 7.41746,2.30626 7.50507,2.40733 7.59267,2.52209 7.582,2.57436
 7.57651,2.69697 7.56203,2.81959 7.54438,2.94221 7.52354,3.06483
 7.49953,3.04552 7.41246,3.0034 7.21862,2.9966 7.18665,2.99153
 7.16271,2.76836 6.10662,2.76698 6.10013,2.76489 6.09027,2.74216
 5.97705,2.6906 5.70316,2.68837 5.69147,2.67984 5.6473,2.67213
 5.60519,2.66543 5.564,2.65315 5.48319,2.65167 5.47366,2.63996
 5.39965,2.63532 5.36774,2.63159 5.33635,2.63138 5.33435,2.6307
 5.32801,2.62318 5.26016,2.61595 5.2276,2.60164 5.168,2.5906
 5.12662,2.57778 5.08701,2.55845 5.03242,2.54629 5.00067,2.53279
 4.97027,2.50892 4.92023,2.49607 4.89498,2.48215 4.87082,2.45406
 4.82499,2.44052 4.80413,2.42605 4.78419,2.39396 4.74237,2.37944
 4.72443,2.36407 4.70735,2.32808 4.66943,2.31204 4.65339,2.29516
 4.6382,2.2553 4.60415,2.23694 4.58929,2.21769 4.57531,2.17388
 4.54521,2.15204 4.53104,2.1292 4.51786,2.08948 4.4963,2.08131
 4.49177,2.02613 4.46059,2 4.44505,1.97387 4.42796,1.89344 4.37298,1.86199
 4.3507,1.83015 4.32662,1.67482 4.2054,1.63047 4.17003,1.58508
 4.13234,1.20884 3.81395,1.22146 3.7599,1.23538 3.70586,1.2506
 3.65182,1.26713 3.59778,1.28496 3.54373,1.30409 3.48969,1.32452
 3.43565,1.34625 3.38161,1.36696 3.33161,1.39856 3.25817,1.43253
 3.18474,1.46887 3.1113,1.50757 3.03787,1.54864 2.96443,1.59208
 2.891,1.63788 2.81756,1.68606 2.74413,1.73659 2.67069,1.7895
 2.59726,1.84477 2.52382,1.90241 2.45039,1.96242 2.37695,2.0248
 2.30352,2.08954 2.23008,2.15665 2.15665,2.26607 2.15409,2.3755
 2.15435,2.48493 2.15744,2.59435 2.16335,2.70378 2.17208,2.8132
 2.18363,2.92263 2.19801,3.03206 2.2152,3.14148 2.23522,3.25091
 2.25806,3.36033 2.28373,3.46976 2.31221,3.57918 2.34352,3.68861
 2.37765,3.79804 2.4146,3.90746 2.45438,3.77286 2.81292,3.72912
 2.9318,3.68819 3.04785,3.65009 3.16108,3.61482 3.27149,3.58236
 3.37908,3.55273 3.48384,3.52591 3.58578,3.50192 3.6849,3.48076
 3.7812,3.46241 3.87467,3.44689 3.96533,3.43419 4.05316,3.42431
 4.13817,3.41726 4.22035,3.41302 4.29971,3.41161 4.37626,3.41161
 4.44635,3.41166 4.44702,3.42417 4.61343,3.42484 4.62197,3.43487
 4.74505,3.43551 4.75253,3.44435 4.85207,3.44499 4.859,3.45368
 4.94885,3.45436 4.95561,3.46376 5.04538,3.46451 5.05229,3.47563
 5.15095,3.47649 5.15837,3.49103 5.27952,3.49207 5.28796,3.49295
 5.29492,3.49686 5.32917,3.5 5.36419,3.5 5.44571,3.5 5.45486,3.5
 5.65575,3.49821 5.68007,3.49738 5.6905,3.49516 5.71697,3.46645
 6.03898,3.46523 6.05293,3.39658 6.85028,3.39459 6.87361,3.34281
 7.48824,3.27331 7.49253,3.20382 7.49584,3.13432 7.49817,3.06483 7.49953))

 Tolerance is: 0.0004

 Simplified result is: POLYGON((3.34281 7.48824,3.27331 7.49253,3.20382
 7.49584,3.13432 7.49817,3.06483 7.49953,1.20884 3.81395,1.1663
 3.89695,1.13837 3.9535,1.11221 4.01006,1.08784 4.06661,1.06524
 4.12317,1.02628 4.22659,1.00887 4.27775,0.99294 4.3289,0.964488
 4.43232,0.952375 4.47996,0.941568 4.5276,0.932065 4.57524,0.923868
 4.62288,0.908966 4.72079,0.903551 4.76643,0.899345 4.81207,0.896348
 4.85771,0.891839 4.95499,0.89125 5,0.891839 5.04501,0.896348
 5.14229,0.899345 5.18793,0.903551 5.23357,0.908966 5.27921,0.923868
 5.37712,0.932065 5.42476,0.941568 5.4724,0.952375 5.52004,0.978492
 5.61994,0.99294 5.6711,1.00887 5.72225,1.02628 5.77341,1.04518
 5.82456,1.08784 5.93338,1.11221 5.98993,1.13836 6.04648,1.19292
 6.1553,1.22687 6.21973,1.26309 6.28417,1.30155 6.3486,1.34227
 6.41304,1.37621 6.4653,1.42695 6.54109,1.48072 6.61688,1.53754
 6.69267,1.59739 6.76846,1.67765 6.86689,1.71667 6.91305,1.75679
 6.9592,1.79801 7.00536,1.84033 7.05152,1.88375 7.09768,1.97387
 7.19,2.02613 7.24226,2.11566 7.32986,2.20903 7.41746,2.30626
 7.50507,2.40733 7.59267,2.52209 7.582,2.57436 7.57651,2.69697
 7.56203,2.81959 7.54438,2.94221 7.52354,3.06483 7.49953,2.99153
 7.16271,2.76489 6.09027,2.74216 5.97705,2.67213 5.60519,2.63532
 5.36774,2.62318 5.26016,2.60164 5.168,2.5906 5.12662,2.57778
 5.08701,2.55845 5.03242,2.54629 5.00067,2.53279 4.97027,2.50892
 4.92023,2.49607 4.89498,2.48215 4.87082,2.45406 4.82499,2.44052
 4.80413,2.42605 4.78419,2.39396 4.74237,2.37944 4.72443,2.36407
 4.70735,2.32808 4.66943,2.31204 4.65339,2.29516 4.6382,2.2553
 4.60415,2.23694 4.58929,2.21769 4.57531,2.17388 4.54521,2.15204
 4.53104,2.02613 4.46059,2 4.44505,1.97387 4.42796,1.89344 4.37298,1.86199
 4.3507,1.83015 4.32662,1.67482 4.2054,1.63047 4.17003,1.58508
 4.13234,1.20884 3.81395,1.22146 3.7599,1.23538 3.70586,1.2506
 3.65182,1.26713 3.59778,1.28496 3.54373,1.30409 3.48969,1.32452
 3.43565,1.36696 3.33161,1.39856 3.25817,1.43253 3.18474,1.46887
 3.1113,1.50757 3.03787,1.54864 2.96443,1.59208 2.891,1.63788
 2.81756,1.68606 2.74413,1.73659 2.67069,1.7895 2.59726,1.84477
 2.52382,1.90241 2.45039,1.96242 2.37695,2.0248 2.30352,2.08954
 2.23008,2.15665 2.15665,2.26607 2.15409,2.3755 2.15435,2.48493
 2.15744,2.59435 2.16335,2.70378 2.17208,2.8132 2.18363,2.92263
 2.19801,3.03206 2.2152,3.14148 2.23522,3.25091 2.25806,3.36033
 2.28373,3.46976 2.31221,3.57918 2.34352,3.68861 2.37765,3.79804
 2.4146,3.90746 2.45438,3.77286 2.81292,3.72912 2.9318,3.68819
 3.04785,3.65009 3.16108,3.61482 3.27149,3.58236 3.37908,3.55273
 3.48384,3.52591 3.58578,3.50192 3.6849,3.48076 3.7812,3.46241
 3.87467,3.44689 3.96533,3.43419 4.05316,3.42431 4.13817,3.41726
 4.22035,3.41302 4.29971,3.41161 4.37626,3.41161 4.44635,3.42484
 4.62197,3.43487 4.74505,3.44499 4.859,3.46451 5.05229,3.47649
 5.15837,3.49686 5.32917,3.5 5.36419,3.5 5.65575,3.49516 5.71697,3.46523
 6.05293,3.39658 6.85028,3.34281 7.48824))

-- 
Ticket URL: <https://svn.boost.org/trac10/ticket/13645>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.

This archive was generated by hypermail 2.1.7 : 2018-07-28 18:57:13 UTC