Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r78650 - trunk/boost/geometry/algorithms/detail/overlay
From: barend.gehrels_at_[hidden]
Date: 2012-05-26 15:28:54


Author: barendgehrels
Date: 2012-05-26 15:28:53 EDT (Sat, 26 May 2012)
New Revision: 78650
URL: http://svn.boost.org/trac/boost/changeset/78650

Log:
[geometry] bugfix for union (pending commit)
Text files modified:
   trunk/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp | 8 +++++++-
   1 files changed, 7 insertions(+), 1 deletions(-)

Modified: trunk/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp
==============================================================================
--- trunk/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp (original)
+++ trunk/boost/geometry/algorithms/detail/overlay/get_turn_info.hpp 2012-05-26 15:28:53 EDT (Sat, 26 May 2012)
@@ -250,9 +250,15 @@
             int const side_pk_q2 = SideStrategy::apply(qj, qk, pk);
             int const side_pk_p = SideStrategy::apply(pi, pj, pk);
             int const side_qk_q = SideStrategy::apply(qi, qj, qk);
+
+ bool const both_continue = side_pk_p == 0 && side_qk_q == 0;
+ bool const robustness_issue_in_continue = both_continue && side_pk_q2 != 0;
+
             bool const q_turns_left = side_qk_q == 1;
             bool const block_q = side_qk_p1 == 0
- && ! same(side_qi_p1, side_qk_q);
+ && ! same(side_qi_p1, side_qk_q)
+ && ! robustness_issue_in_continue
+ ;
 
             // If Pk at same side as Qi/Qk
             // (the "or" is for collinear case)


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk