1 // Boost.Geometry (aka GGL, Generic Geometry Library) 2 3 // Copyright (c) 2007-2014 Barend Gehrels, Amsterdam, the Netherlands. 4 // Copyright (c) 2008-2014 Bruno Lalande, Paris, France. 5 // Copyright (c) 2009-2014 Mateusz Loskot, London, UK. 6 // Copyright (c) 2013-2014 Adam Wulkiewicz, Lodz, Poland. 7 8 // This file was modified by Oracle on 2014. 9 // Modifications copyright (c) 2014, Oracle and/or its affiliates. 10 11 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle 12 13 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library 14 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. 15 16 // Use, modification and distribution is subject to the Boost Software License, 17 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at 18 // http://www.boost.org/LICENSE_1_0.txt) 19 20 #ifndef BOOST_GEOMETRY_ALGORITHMS_DISPATCH_DISTANCE_HPP 21 #define BOOST_GEOMETRY_ALGORITHMS_DISPATCH_DISTANCE_HPP 22 23 24 #include <boost/geometry/core/reverse_dispatch.hpp> 25 #include <boost/geometry/core/tag.hpp> 26 #include <boost/geometry/core/tag_cast.hpp> 27 #include <boost/geometry/core/tags.hpp> 28 #include <boost/geometry/strategies/distance.hpp> 29 #include <boost/geometry/algorithms/not_implemented.hpp> 30 31 32 namespace boost { namespace geometry 33 { 34 35 36 #ifndef DOXYGEN_NO_DISPATCH 37 namespace dispatch 38 { 39 40 41 template 42 < 43 typename Geometry1, typename Geometry2, 44 typename Strategy = typename detail::distance::default_strategy 45 < 46 Geometry1, Geometry2 47 >::type, 48 typename Tag1 = typename tag_cast 49 < 50 typename tag<Geometry1>::type, 51 segment_tag, 52 box_tag, 53 linear_tag, 54 areal_tag 55 >::type, 56 typename Tag2 = typename tag_cast 57 < 58 typename tag<Geometry2>::type, 59 segment_tag, 60 box_tag, 61 linear_tag, 62 areal_tag 63 >::type, 64 typename StrategyTag = typename strategy::distance::services::tag 65 < 66 Strategy 67 >::type, 68 bool Reverse = reverse_dispatch<Geometry1, Geometry2>::type::value 69 > 70 struct distance: not_implemented<Tag1, Tag2> 71 {}; 72 73 74 75 } // namespace dispatch 76 #endif // DOXYGEN_NO_DISPATCH 77 78 79 }} // namespace boost::geometry 80 81 82 #endif // BOOST_GEOMETRY_ALGORITHMS_DISPATCH_DISTANCE_HPP 83