// Boost.Geometry (aka GGL, Generic Geometry Library) // Copyright (c) 2014, 2018, Oracle and/or its affiliates. // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle // Licensed under the Boost Software License version 1.0. // http://www.boost.org/users/license.html #ifndef BOOST_GEOMETRY_ITERATORS_DETAIL_POINT_ITERATOR_ITERATOR_TYPE_HPP #define BOOST_GEOMETRY_ITERATORS_DETAIL_POINT_ITERATOR_ITERATOR_TYPE_HPP #include #include #include #include #include #include #include #include #include #include namespace boost { namespace geometry { #ifndef DOXYGEN_NO_DETAIL namespace detail { namespace point_iterator { template ::type> struct iterator_type : not_implemented {}; template struct iterator_type { typedef typename boost::range_iterator::type type; }; template struct iterator_type { typedef typename boost::range_iterator::type type; }; template class iterator_type { private: typedef typename inner_range_type::type inner_range; public: typedef concatenate_iterator < typename boost::range_iterator::type, flatten_iterator < typename boost::range_iterator < typename geometry::interior_type::type >::type, typename iterator_type::type, typename value_type::type, dispatch::points_begin, dispatch::points_end >, typename value_type::type > type; }; template struct iterator_type { typedef typename boost::range_iterator::type type; }; template class iterator_type { private: typedef typename inner_range_type::type inner_range; public: typedef flatten_iterator < typename boost::range_iterator::type, typename iterator_type::type, typename value_type::type, dispatch::points_begin, dispatch::points_end > type; }; template class iterator_type { private: typedef typename inner_range_type::type inner_range; public: typedef flatten_iterator < typename boost::range_iterator::type, typename iterator_type::type, typename value_type::type, dispatch::points_begin, dispatch::points_end > type; }; }} // namespace detail::point_iterator #endif // DOXYGEN_NO_DETAIL }} // namespace boost::geometry #endif // BOOST_GEOMETRY_ITERATORS_DETAIL_POINT_ITERATOR_ITERATOR_TYPE_HPP