Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-15 09:51:54

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 
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_WITHIN_HPP
0020 #define BOOST_GEOMETRY_STRATEGIES_WITHIN_HPP
0021 
0022 
0023 #include <boost/geometry/core/cs.hpp>
0024 #include <boost/geometry/core/point_type.hpp>
0025 #include <boost/geometry/core/static_assert.hpp>
0026 #include <boost/geometry/core/tag.hpp>
0027 #include <boost/geometry/core/tags.hpp>
0028 #include <boost/geometry/core/tag_cast.hpp>
0029 
0030 
0031 namespace boost { namespace geometry
0032 {
0033 
0034 namespace strategy { namespace within
0035 {
0036 
0037 
0038 namespace services
0039 {
0040 
0041 /*!
0042 \brief Traits class binding a within determination strategy to a coordinate system
0043 \ingroup within
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 = tag_t<GeometryContained>,
0056     typename TagContaining = tag_t<GeometryContaining>,
0057     typename CastedTagContained = tag_cast_t
0058                                     <
0059                                         tag_t<GeometryContained>,
0060                                         pointlike_tag, linear_tag, polygonal_tag, areal_tag
0061                                     >,
0062     typename CastedTagContaining = tag_cast_t
0063                                     <
0064                                         tag_t<GeometryContaining>,
0065                                         pointlike_tag, linear_tag, polygonal_tag, areal_tag
0066                                     >,
0067     typename CsTagContained = tag_cast_t
0068                                 <
0069                                     cs_tag_t<point_type_t<GeometryContained>>,
0070                                     spherical_tag
0071                                 >,
0072     typename CsTagContaining = tag_cast_t
0073                                 <
0074                                     cs_tag_t<point_type_t<GeometryContaining>>,
0075                                     spherical_tag
0076                                 >
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::within
0090 
0091 
0092 }} // namespace boost::geometry
0093 
0094 
0095 #endif // BOOST_GEOMETRY_STRATEGIES_WITHIN_HPP
0096