Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:51:39

0001 // Boost.Geometry
0002 
0003 // Copyright (c) 2017-2020, Oracle and/or its affiliates.
0004 // Contributed and/or modified by Vissarion Fysikopoulos, on behalf of Oracle
0005 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0006 
0007 // Use, modification and distribution is subject to the Boost Software License,
0008 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0009 // http://www.boost.org/LICENSE_1_0.txt)
0010 
0011 #ifndef BOOST_GEOMETRY_STRATEGIES_DISJOINT_HPP
0012 #define BOOST_GEOMETRY_STRATEGIES_DISJOINT_HPP
0013 
0014 
0015 #include <boost/geometry/core/cs.hpp>
0016 #include <boost/geometry/core/point_type.hpp>
0017 #include <boost/geometry/core/topological_dimension.hpp>
0018 
0019 #include <boost/geometry/strategies/covered_by.hpp>
0020 #include <boost/geometry/strategies/default_strategy.hpp>
0021 
0022 #include <boost/geometry/strategy/relate.hpp>
0023 
0024 
0025 namespace boost { namespace geometry { namespace strategy { namespace disjoint
0026 {
0027 
0028 #ifndef DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
0029 namespace services
0030 {
0031 
0032 template
0033 <
0034     typename Geometry1,
0035     typename Geometry2,
0036     typename Tag1 = tag_t<Geometry1>,
0037     typename Tag2 = tag_t<Geometry2>,
0038     int TopDim1 = geometry::topological_dimension<Geometry1>::value,
0039     int TopDim2 = geometry::topological_dimension<Geometry2>::value,
0040     typename CsTag1 = cs_tag_t<Geometry1>,
0041     typename CsTag2 = cs_tag_t<Geometry2>
0042 >
0043 struct default_strategy
0044     : relate::services::default_strategy
0045         <
0046             Geometry1, Geometry2
0047         >
0048 {};
0049 
0050 template <typename Point, typename Box>
0051 struct default_strategy<Point, Box, point_tag, box_tag, 0, 2>
0052     : strategy::covered_by::services::default_strategy<Point, Box>
0053 {};
0054 
0055 template <typename Box, typename Point>
0056 struct default_strategy<Box, Point, box_tag, point_tag, 2, 0>
0057     : strategy::covered_by::services::default_strategy<Point, Box>
0058 {};
0059 
0060 template <typename MultiPoint, typename Box>
0061 struct default_strategy<MultiPoint, Box, multi_point_tag, box_tag, 0, 2>
0062     : strategy::covered_by::services::default_strategy
0063         <
0064             point_type_t<MultiPoint>,
0065             Box
0066         >
0067 {};
0068 
0069 template <typename Box, typename MultiPoint>
0070 struct default_strategy<Box, MultiPoint, box_tag, multi_point_tag, 2, 0>
0071     : strategy::covered_by::services::default_strategy
0072         <
0073             point_type_t<MultiPoint>,
0074             Box
0075         >
0076 {};
0077 
0078 } // namespace services
0079 #endif // DOXYGEN_NO_STRATEGY_SPECIALIZATIONS
0080 
0081 }}}} // namespace boost::geometry::strategy::disjoint
0082 
0083 
0084 #endif // BOOST_GEOMETRY_STRATEGIES_DISJOINT_HPP