[Boost-bugs] [Boost C++ Libraries] #11121: Invalid result of difference() for integral coordinates.

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