Re: [Boost-bugs] [Boost C++ Libraries] #10957: Various bugs in relational operations (spatial predicates)

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