Chris@16: // Boost.Geometry (aka GGL, Generic Geometry Library) Chris@16: Chris@101: // Copyright (c) 2007-2014 Barend Gehrels, Amsterdam, the Netherlands. Chris@101: // Copyright (c) 2008-2014 Bruno Lalande, Paris, France. Chris@101: // Copyright (c) 2009-2014 Mateusz Loskot, London, UK. Chris@101: Chris@101: // This file was modified by Oracle on 2014. Chris@101: // Modifications copyright (c) 2014, Oracle and/or its affiliates. Chris@101: Chris@101: // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle Chris@16: Chris@16: // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library Chris@16: // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. Chris@16: Chris@16: // Use, modification and distribution is subject to the Boost Software License, Chris@16: // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at Chris@16: // http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_GEOMETRY_STRATEGIES_DISTANCE_HPP Chris@16: #define BOOST_GEOMETRY_STRATEGIES_DISTANCE_HPP Chris@16: Chris@16: Chris@16: #include Chris@16: Chris@16: #include Chris@16: #include Chris@16: Chris@16: Chris@16: namespace boost { namespace geometry Chris@16: { Chris@16: Chris@16: Chris@16: namespace strategy { namespace distance { namespace services Chris@16: { Chris@16: Chris@16: Chris@16: template struct tag {}; Chris@16: Chris@16: template Chris@16: struct return_type Chris@16: { Chris@16: BOOST_MPL_ASSERT_MSG Chris@16: ( Chris@16: false, NOT_IMPLEMENTED_FOR_THIS_STRATEGY, (types) Chris@16: ); Chris@16: }; Chris@16: Chris@16: Chris@16: template struct comparable_type Chris@16: { Chris@16: BOOST_MPL_ASSERT_MSG Chris@16: ( Chris@16: false, NOT_IMPLEMENTED_FOR_THIS_STRATEGY, (types) Chris@16: ); Chris@16: }; Chris@16: Chris@16: template struct get_comparable Chris@16: { Chris@16: BOOST_MPL_ASSERT_MSG Chris@16: ( Chris@16: false, NOT_IMPLEMENTED_FOR_THIS_STRATEGY, (types) Chris@16: ); Chris@16: }; Chris@16: Chris@16: template Chris@16: struct result_from_distance {}; Chris@16: Chris@16: Chris@16: Chris@16: Chris@16: // Default strategy Chris@16: Chris@16: Chris@16: /*! Chris@16: \brief Traits class binding a default strategy for distance Chris@16: to one (or possibly two) coordinate system(s) Chris@16: \ingroup distance Chris@101: \tparam GeometryTag1 tag (point/segment/box) for which this strategy is the default Chris@101: \tparam GeometryTag2 tag (point/segment/box) for which this strategy is the default Chris@16: \tparam Point1 first point-type Chris@16: \tparam Point2 second point-type Chris@16: \tparam CsTag1 tag of coordinate system of first point type Chris@16: \tparam CsTag2 tag of coordinate system of second point type Chris@16: */ Chris@16: template Chris@16: < Chris@101: typename GeometryTag1, Chris@101: typename GeometryTag2, Chris@16: typename Point1, Chris@16: typename Point2 = Point1, Chris@16: typename CsTag1 = typename cs_tag::type, Chris@16: typename CsTag2 = typename cs_tag::type, Chris@16: typename UnderlyingStrategy = void Chris@16: > Chris@16: struct default_strategy Chris@16: { Chris@16: BOOST_MPL_ASSERT_MSG Chris@16: ( Chris@16: false, NOT_IMPLEMENTED_FOR_THIS_POINT_TYPE_COMBINATION Chris@16: , (types) Chris@16: ); Chris@16: }; Chris@16: Chris@16: Chris@16: }}} // namespace strategy::distance::services Chris@16: Chris@16: Chris@16: }} // namespace boost::geometry Chris@16: Chris@16: #endif // BOOST_GEOMETRY_STRATEGIES_DISTANCE_HPP