Subject: [Boost-bugs] [Boost C++ Libraries] #10904: Assertion failure in cart_intersect->side->ratio for very small segments.
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-12-27 21:56:48
#10904: Assertion failure in cart_intersect->side->ratio for very small segments.
---------------------------------------------+---------------------------
Reporter: awulkiew | Owner: barendgehrels
Type: Bugs | Status: new
Milestone: To Be Determined | Component: geometry
Version: Boost 1.57.0 | Severity: Problem
Keywords: equals,relate,intersection,side |
---------------------------------------------+---------------------------
When the intersection points are calculated for very small segments the
segments may be considered as collinear. If then one of the segment is
vertical or horizontal dx or dy is 0. Since the coordinates are very small
the greater sum of coordinates' differences may correspond to the
Dimension for which dx or dy is 0. Then relate_collinear() may be called
for invalid Dimension which at the end causes the creation of ratios
containing denumerator = 0 and assert failure in ratio less compare. This
can be observed e.g. for:
{{{
"LINESTRING(5.6956521739130430148634331999347
-0.60869565217391330413931882503675,5.5
-0.50000000000000066613381477509392)"
"LINESTRING(5.5 -0.50000000000000066613381477509392,5.5 -0.5)
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/10904> 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:17 UTC