Subject: Re: [Boost-bugs] [Boost C++ Libraries] #10957: Various bugs in relational operations (spatial predicates)
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2015-01-27 00:11:29
#10957: Various bugs in relational operations (spatial predicates)
-------------------------+-------------------------------------------------
Reporter: awulkiew | Owner: awulkiew
Type: Bugs | Status: closed
Milestone: Boost | Component: geometry
1.58.0 | Severity: Problem
Version: Boost | Keywords: relate, within, disjoint, overlaps,
1.57.0 | crosses
Resolution: fixed |
-------------------------+-------------------------------------------------
Description changed by awulkiew:
Old description:
> 1. Assertion failure in relate(L,A) for invalid polygon containing spike.
> {{{
> "LINESTRING(6 3,9 0)"
> "POLYGON((0 0,5 8,6 1,6 3,8 1,5 4,9 6,2 5,7 4,1 7,0 0))"
> }}}
>
> 2. Invalid result of relate(L,A), the second Ls is not handled properly.
> {{{
> "MULTILINESTRING((6 6,15 15),(0 0, 7 7))"
> "POLYGON((5 5,5 15,15 15,15 5,5 5))"
> }}}
>
> 3. Invalid result of relate(L,MPoly) because it assumes that a single u/u
> for an Areal ring means that the Linear geometry is in the exterior of
> Areal.
> {{{
> "LINESTRING(5 5,0 0,10 0)"
> "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0
> 0)))"
> }}}
>
> 4. Invalid result of relate(A,MPoly), similar to the above.
> {{{
> "MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0
> 0)))"
> "POLYGON((0 0,0 5,5 5,5 0,0 0))"
> }}}
>
> 5. Invalid result of relate(MLs,A), second entering linestring not
> handled properly.
> {{{
> "MULTILINESTRING((4 10, 3 10, 10 6),(5 0, 7 5, 9 10))"
> "POLYGON((0 0,0 10,10 10,10 0,5 5,0 0))"
> }}}
New description:
1. Assertion failure in relate(L,A) for invalid polygon containing spike.
{{{
"LINESTRING(6 3,9 0)"
"POLYGON((0 0,5 8,6 1,6 3,8 1,5 4,9 6,2 5,7 4,1 7,0 0))"
}}}
2. Invalid result of relate(L,A), the second Ls is not handled properly.
{{{
"MULTILINESTRING((6 6,15 15),(0 0, 7 7))"
"POLYGON((5 5,5 15,15 15,15 5,5 5))"
}}}
3. Invalid result of relate(L,MPoly) because it assumes that a single u/u
for an Areal ring means that the Linear geometry is in the exterior of
Areal.
{{{
"LINESTRING(5 5,0 0,10 0)"
"MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0
0)))"
}}}
4. Invalid result of relate(A,MPoly), similar to the above.
{{{
"MULTIPOLYGON(((0 0,0 10,10 10,10 0,0 0)),((0 0,0 -10,-10 -10,-10 0,0
0)))"
"POLYGON((0 0,0 5,5 5,5 0,0 0))"
}}}
5. Invalid result of relate(MLs,A), second entering linestring not handled
properly.
{{{
"MULTILINESTRING((4 10, 3 10, 10 6),(5 0, 7 5, 9 10))"
"POLYGON((0 0,0 10,10 10,10 0,5 5,0 0))"
}}}
6. Invalid result of relate(Ls,MLs) for a collinear spike contained in one
Ls of a MLs and touching the other one (blocking turn detected as exit).
{{{
"LINESTRING(1 1, 5 5, 4 4)"
"MULTILINESTRING((2 5, 7 5, 8 3, 6 3, 4 0),(0 0,10 10))"
}}}
-- -- Ticket URL: <https://svn.boost.org/trac/boost/ticket/10957#comment:3> 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