|
Geometry : |
Subject: Re: [geometry] Bug in boost geometry 1.48: union of 2 polygons is wrong.
From: Barend Gehrels (barend_at_[hidden])
Date: 2012-01-14 05:20:32
Hi Zachary,
Thanks for your reproduction scenario.
On 14-1-2012 2:03, Zachary Deretsky wrote:
> Union of 2 polygons in the input3.png produces incorrect polygon in
> output3.png.
>
> Below is the code, which reproduces it, You can actually delete
> everything below the line " // THIS IS THE SIMPLE CASE END"
You define a point with *integer *coordinates. That is allowed, of
course, it compiles and links, but it is not heavily tested with the
library. This scenario also proves that...
Using *integer* will also cause problems as soon as segments intersect
on non-integer coordinates of course.
I just noted that also SVG maps are not reproduced if integer
coordinates are used (due to transformations).
Using *double* coordinates, the result is OK, so that is my current
advice. Alternatively Boost.Polygon is specificly developed to integer
intersections, with no doubts it will handle this correctly.
But of course I will have a look what is exactly going wrong here
because I agree that this simple case should be handled correctly in
*integer *coordinates.
Thanks, Barend
Geometry list run by mateusz at loskot.net