Subject: [Boost-bugs] [Boost C++ Libraries] #11121: Invalid result of difference() for integral coordinates.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-03-18 15:04:24
#11121: Invalid result of difference() for integral coordinates.
-------------------------------------------------+-------------------------
Reporter: awulkiew | Owner:
Type: Bugs | barendgehrels
Milestone: To Be Determined | Status: new
Version: Boost Development Trunk | Component: geometry
Keywords: difference, integral, setops, | Severity: Problem
get_turns |
-------------------------------------------------+-------------------------
For polygons:
{{{
green = "POLYGON((-8042 -1485,-8042 250,-8042 250,15943 254,15943
-1485,-8042 -1485))",
blue = "POLYGON((-7901 -1485,-7901 529,-7901 529, 15802 544, 15802 -1485,
-7901 -1485))"
}}}
The result of difference(green, blue) and/or difference(blue, green) is
invalid if the polygons use `int` coordinate type.
I think it may be related to get_turns/cart_intersect and ratios/fractions
but it needs further investigation. I noticed that turns has wrong
coordinates, always endpoints of segments are picked as if internally
ratios were always truncated to 0.
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/11121> 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