Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:36:50

0001 // Boost.Geometry (aka GGL, Generic Geometry Library)
0002 
0003 // Copyright (c) 2007-2014 Barend Gehrels, Amsterdam, the Netherlands.
0004 // Copyright (c) 2008-2014 Bruno Lalande, Paris, France.
0005 // Copyright (c) 2009-2014 Mateusz Loskot, London, UK.
0006 
0007 // This file was modified by Oracle on 2014-2021.
0008 // Modifications copyright (c) 2014-2021, Oracle and/or its affiliates.
0009 // Contributed and/or modified by Menelaos Karavelas, on behalf of Oracle
0010 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0011 
0012 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
0013 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
0014 
0015 // Use, modification and distribution is subject to the Boost Software License,
0016 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0017 // http://www.boost.org/LICENSE_1_0.txt)
0018 
0019 #ifndef BOOST_GEOMETRY_STRATEGIES_DISTANCE_HPP
0020 #define BOOST_GEOMETRY_STRATEGIES_DISTANCE_HPP
0021 
0022 
0023 #include <boost/geometry/core/cs.hpp>
0024 #include <boost/geometry/core/static_assert.hpp>
0025 #include <boost/geometry/strategies/tags.hpp>
0026 
0027 
0028 namespace boost { namespace geometry
0029 {
0030 
0031 
0032 namespace strategy { namespace distance { namespace services
0033 {
0034 
0035 
0036 template <typename Strategy> struct tag
0037 {
0038     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0039         "Not implemented for this Strategy.",
0040         Strategy);
0041 };
0042 
0043 template <typename Strategy, typename P1, typename P2>
0044 struct return_type
0045 {
0046     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0047         "Not implemented for this Strategy.",
0048         Strategy, P1, P2);
0049 };
0050 
0051 
0052 template <typename Strategy> struct comparable_type
0053 {
0054     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0055         "Not implemented for this Strategy.",
0056         Strategy);
0057 };
0058 
0059 template <typename Strategy> struct get_comparable
0060 {
0061     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0062         "Not implemented for this Strategy.",
0063         Strategy);
0064 };
0065 
0066 template <typename Strategy, typename P1, typename P2>
0067 struct result_from_distance
0068 {
0069     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0070         "Not implemented for this Strategy.",
0071         Strategy, P1, P2);
0072 };
0073 
0074 
0075 
0076 
0077 // Default strategy
0078 
0079 
0080 /*!
0081     \brief Traits class binding a default strategy for distance
0082         to one (or possibly two) coordinate system(s)
0083     \ingroup distance
0084     \tparam GeometryTag1 tag (point/segment/box) for which this strategy is the default
0085     \tparam GeometryTag2 tag (point/segment/box) for which this strategy is the default
0086     \tparam Point1 first point-type
0087     \tparam Point2 second point-type
0088     \tparam CsTag1 tag of coordinate system of first point type
0089     \tparam CsTag2 tag of coordinate system of second point type
0090 */
0091 template
0092 <
0093     typename GeometryTag1,
0094     typename GeometryTag2,
0095     typename Point1,
0096     typename Point2 = Point1,
0097     typename CsTag1 = typename cs_tag<Point1>::type,
0098     typename CsTag2 = typename cs_tag<Point2>::type,
0099     typename UnderlyingStrategy = void
0100 >
0101 struct default_strategy
0102 {
0103     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0104         "Not implemented for this Point type combination.",
0105         Point1, Point2, CsTag1, CsTag2);
0106 };
0107 
0108 
0109 }}} // namespace strategy::distance::services
0110 
0111 
0112 }} // namespace boost::geometry
0113 
0114 #endif // BOOST_GEOMETRY_STRATEGIES_DISTANCE_HPP