diff options
Diffstat (limited to 'boost/geometry/algorithms/detail/envelope/linear.hpp')
-rw-r--r-- | boost/geometry/algorithms/detail/envelope/linear.hpp | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/boost/geometry/algorithms/detail/envelope/linear.hpp b/boost/geometry/algorithms/detail/envelope/linear.hpp index 49c3cf3135..09d8a76da5 100644 --- a/boost/geometry/algorithms/detail/envelope/linear.hpp +++ b/boost/geometry/algorithms/detail/envelope/linear.hpp @@ -4,9 +4,10 @@ // Copyright (c) 2008-2015 Bruno Lalande, Paris, France. // Copyright (c) 2009-2015 Mateusz Loskot, London, UK. -// This file was modified by Oracle on 2015. -// Modifications copyright (c) 2015, Oracle and/or its affiliates. +// This file was modified by Oracle on 2015, 2016. +// Modifications copyright (c) 2015-2016, Oracle and/or its affiliates. +// Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle // Distributed under the Boost Software License, Version 1.0. @@ -36,12 +37,15 @@ namespace detail { namespace envelope struct envelope_linestring_on_spheroid { - template <typename Linestring, typename Box> - static inline void apply(Linestring const& linestring, Box& mbr) + template <typename Linestring, typename Box, typename Strategy> + static inline void apply(Linestring const& linestring, + Box& mbr, + Strategy const& strategy) { envelope_range::apply(geometry::segments_begin(linestring), geometry::segments_end(linestring), - mbr); + mbr, + strategy); } }; @@ -65,6 +69,11 @@ struct envelope<Linestring, linestring_tag, spherical_equatorial_tag> : detail::envelope::envelope_linestring_on_spheroid {}; +template <typename Linestring> +struct envelope<Linestring, linestring_tag, geographic_tag> + : detail::envelope::envelope_linestring_on_spheroid +{}; + template <typename MultiLinestring, typename CS_Tag> struct envelope @@ -86,6 +95,15 @@ struct envelope > {}; +template <typename MultiLinestring> +struct envelope + < + MultiLinestring, multi_linestring_tag, geographic_tag + > : detail::envelope::envelope_multi_range_on_spheroid + < + detail::envelope::envelope_linestring_on_spheroid + > +{}; } // namespace dispatch #endif // DOXYGEN_NO_DISPATCH |