Opened 8 years ago

Closed 8 years ago

#10904 closed Bugs (fixed)

Assertion failure in cart_intersect->side->ratio for very small segments.

Reported by: awulkiew Owned by: Barend Gehrels
Milestone: Boost 1.58.0 Component: geometry
Version: Boost 1.57.0 Severity: Problem
Keywords: equals, relate, intersection, side Cc:

Description

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)

Change History (1)

comment:1 by awulkiew, 8 years ago

Milestone: To Be DeterminedBoost 1.58.0
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.