Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-15 09:12:21

0001 // Boost.Geometry (aka GGL, Generic Geometry Library)
0002 
0003 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
0004 // Copyright (c) 2008-2012 Bruno Lalande, Paris, France.
0005 // Copyright (c) 2009-2012 Mateusz Loskot, London, UK.
0006 
0007 // This file was modified by Oracle on 2017-2020.
0008 // Modifications copyright (c) 2017-2020, Oracle and/or its affiliates.
0009 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0010 
0011 // Parts of Boost.Geometry are redesigned from Geodan's Geographic Library
0012 // (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands.
0013 
0014 // Use, modification and distribution is subject to the Boost Software License,
0015 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0016 // http://www.boost.org/LICENSE_1_0.txt)
0017 
0018 #ifndef BOOST_GEOMETRY_STRATEGIES_COVERED_BY_HPP
0019 #define BOOST_GEOMETRY_STRATEGIES_COVERED_BY_HPP
0020 
0021 
0022 #include <boost/geometry/core/cs.hpp>
0023 #include <boost/geometry/core/point_type.hpp>
0024 #include <boost/geometry/core/static_assert.hpp>
0025 #include <boost/geometry/core/tag.hpp>
0026 #include <boost/geometry/core/tags.hpp>
0027 #include <boost/geometry/core/tag_cast.hpp>
0028 
0029 
0030 namespace boost { namespace geometry
0031 {
0032 
0033 
0034 namespace strategy { namespace covered_by
0035 {
0036 
0037 
0038 namespace services
0039 {
0040 
0041 /*!
0042 \brief Traits class binding a covered_by determination strategy to a coordinate system
0043 \ingroup covered_by
0044 \tparam GeometryContained geometry-type of input (possibly) contained type
0045 \tparam GeometryContaining geometry-type of input (possibly) containing type
0046 \tparam TagContained casted tag of (possibly) contained type
0047 \tparam TagContaining casted tag of (possibly) containing type
0048 \tparam CsTagContained tag of coordinate system of (possibly) contained type
0049 \tparam CsTagContaining tag of coordinate system of (possibly) containing type
0050 */
0051 template
0052 <
0053     typename GeometryContained,
0054     typename GeometryContaining,
0055     typename TagContained = typename tag<GeometryContained>::type,
0056     typename TagContaining = typename tag<GeometryContaining>::type,
0057     typename CastedTagContained = typename tag_cast
0058                                     <
0059                                         typename tag<GeometryContained>::type,
0060                                         pointlike_tag, linear_tag, polygonal_tag, areal_tag
0061                                     >::type,
0062     typename CastedTagContaining = typename tag_cast
0063                                     <
0064                                         typename tag<GeometryContaining>::type,
0065                                         pointlike_tag, linear_tag, polygonal_tag, areal_tag
0066                                     >::type,
0067     typename CsTagContained = typename tag_cast
0068                                 <
0069                                     typename cs_tag<typename point_type<GeometryContained>::type>::type,
0070                                     spherical_tag
0071                                 >::type,
0072     typename CsTagContaining = typename tag_cast
0073                                 <
0074                                     typename cs_tag<typename point_type<GeometryContaining>::type>::type,
0075                                     spherical_tag
0076                                 >::type
0077 >
0078 struct default_strategy
0079 {
0080     BOOST_GEOMETRY_STATIC_ASSERT_FALSE(
0081         "Not implemented for these types.",
0082         GeometryContained, GeometryContaining);
0083 };
0084 
0085 
0086 } // namespace services
0087 
0088 
0089 }} // namespace strategy::covered_by
0090 
0091 
0092 }} // namespace boost::geometry
0093 
0094 
0095 #endif // BOOST_GEOMETRY_STRATEGIES_COVERED_BY_HPP
0096