diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:11:01 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:11:01 +0900 |
commit | 3fdc3e5ee96dca5b11d1694975a65200787eab86 (patch) | |
tree | 5c1733853892b8397d67706fa453a9bd978d2102 /boost/geometry/algorithms/detail/overlay/follow.hpp | |
parent | 88e602c57797660ebe0f9e15dbd64c1ff16dead3 (diff) | |
download | boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.tar.gz boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.tar.bz2 boost-3fdc3e5ee96dca5b11d1694975a65200787eab86.zip |
Imported Upstream version 1.66.0upstream/1.66.0
Diffstat (limited to 'boost/geometry/algorithms/detail/overlay/follow.hpp')
-rw-r--r-- | boost/geometry/algorithms/detail/overlay/follow.hpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/boost/geometry/algorithms/detail/overlay/follow.hpp b/boost/geometry/algorithms/detail/overlay/follow.hpp index 589e12cc2b..4a5993ea31 100644 --- a/boost/geometry/algorithms/detail/overlay/follow.hpp +++ b/boost/geometry/algorithms/detail/overlay/follow.hpp @@ -26,6 +26,7 @@ #include <boost/geometry/algorithms/covered_by.hpp> #include <boost/geometry/algorithms/clear.hpp> +#include <boost/geometry/algorithms/detail/relate/turns.hpp> namespace boost { namespace geometry @@ -343,6 +344,7 @@ template class follow { +#ifdef BOOST_GEOMETRY_SETOPS_LA_OLD_BEHAVIOR template <typename Turn> struct sort_on_segment { @@ -389,7 +391,7 @@ class follow } }; - +#endif // BOOST_GEOMETRY_SETOPS_LA_OLD_BEHAVIOR public : @@ -433,7 +435,15 @@ public : // Sort intersection points on segments-along-linestring, and distance // (like in enrich is done for poly/poly) + // sort turns by Linear seg_id, then by fraction, then + // for same ring id: x, u, i, c + // for different ring id: c, i, u, x +#ifdef BOOST_GEOMETRY_SETOPS_LA_OLD_BEHAVIOR std::sort(boost::begin(turns), boost::end(turns), sort_on_segment<turn_type>()); +#else + typedef relate::turns::less<0, relate::turns::less_op_linear_areal_single<0> > turn_less; + std::sort(boost::begin(turns), boost::end(turns), turn_less()); +#endif LineStringOut current_piece; geometry::segment_identifier current_segment_id(0, -1, -1, -1); |