[Boost-bugs] [Boost C++ Libraries] #11580: invalid buffer result

Subject: [Boost-bugs] [Boost C++ Libraries] #11580: invalid buffer result
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-08-25 10:00:19


#11580: invalid buffer result
-------------------------------------------------+-------------------------
 Reporter: Marios Visvardis | Owner:
  <visvardis.marios@…> | barendgehrels
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: geometry
  Version: Boost 1.59.0 | Severity: Showstopper
 Keywords: |
-------------------------------------------------+-------------------------
 The following code example produces invalid results. Reducing the distance
 e.g. from 2.37 to 1 produces correct results.
 I have tested this code with boost 1.57 and boost 1.59 with the same
 results.

 {{{

 #include <boost/geometry.hpp>
 #include <boost/geometry/geometries/geometries.hpp>

 namespace bg = boost::geometry;

 int main()
 {
         typedef bg::model::point<double, 2, bg::cs::cartesian> point;
         typedef bg::model::polygon<point> polygon;

         polygon poly;
         bg::read_wkt("POLYGON((14.02 474.96,14.02 494.96,14.022
 494.96,14.022 486.24,14.02 474.96))", poly);

         bg::strategy::buffer::distance_symmetric<double>
 distance_strategy(2.37);
         bg::strategy::buffer::side_straight side_strategy;
         bg::strategy::buffer::join_miter join_strategy;
         bg::strategy::buffer::end_flat end_strategy;
         bg::strategy::buffer::point_circle point_strategy;

         bg::model::multi_polygon<Polygon> grown;
         bg::buffer(poly, grown, distance_strategy, side_strategy,
 join_strategy,
                            end_strategy, point_strategy);

         std::cout << bg::wkt(grown) << std::endl;
         return 0;
 }

 }}}

 The returned shape is:

 MULTIPOLYGON(((16.39 474.96,16.3842 474.795,16.3669 474.63,16.3382
 474.467,16.2982 474.307,16.2471 474.149,16.1851 473.996,16.1126
 473.847,16.0299 473.704,15.9374 473.567,15.8355 473.437,15.7248
 473.314,15.6058 473.199,15.4791 473.092,15.3453 472.995,15.205
 472.908,15.0589 472.83,14.9078 472.763,14.7524 472.706,14.5934
 472.66,14.4315 472.626,14.2677 472.603,14.1027 472.591,13.9373
 472.591,13.7723 472.603,13.6085 472.626,13.4466 472.66,13.2876
 472.706,13.1322 472.763,12.9811 472.83,12.835 472.908,12.6947
 472.995,12.5609 473.092,12.4342 473.199,12.3152 473.314,12.2045
 473.437,12.1026 473.567,12.0101 473.704,11.9274 473.847,11.8549
 473.996,11.7929 474.149,11.7418 474.307,11.7018 474.467,11.6731
 474.63,11.6558 474.795,11.65 474.96,11.6558 475.125,11.6731 475.29,11.7018
 475.453,11.7418 475.613,11.7929 475.771,11.8549 475.924,11.9274
 476.073,12.0101 476.216,12.1026 476.353,12.2045 476.483,12.3152
 476.606,12.4342 476.721,12.5609 476.828,12.6947 476.925,12.835
 477.012,12.9811 477.09,13.1322 477.157,13.2876 477.214,13.4466
 477.26,13.6085 477.294,13.7723 477.317,13.9373 477.329,14.1027
 477.329,14.2677 477.317,14.4315 477.294,14.5934 477.26,14.7524
 477.214,14.9078 477.157,15.0589 477.09,15.205 477.012,15.3453
 476.925,15.4791 476.828,15.6058 476.721,15.7248 476.606,15.8355
 476.483,15.9374 476.353,16.0299 476.216,16.1126 476.073,16.1851
 475.924,16.2471 475.771,16.2982 475.613,16.3382 475.453,16.3669
 475.29,16.3842 475.125,16.39 474.96)))

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/11580>
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 : 2017-02-16 18:50:18 UTC