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-2012 Barend Gehrels, Amsterdam, the Netherlands.
0004 
0005 // This file was modified by Oracle on 2016-2020.
0006 // Modifications copyright (c) 2016-2020, Oracle and/or its affiliates.
0007 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
0008 
0009 // Use, modification and distribution is subject to the Boost Software License,
0010 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0011 // http://www.boost.org/LICENSE_1_0.txt)
0012 
0013 #ifndef BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP
0014 #define BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP
0015 
0016 
0017 //#include <type_traits>
0018 
0019 #include <boost/geometry/policies/relate/intersection_policy.hpp>
0020 #include <boost/geometry/policies/robustness/segment_ratio_type.hpp>
0021 
0022 #include <boost/geometry/strategies/intersection.hpp>
0023 #include <boost/geometry/strategies/intersection_result.hpp>
0024 #include <boost/geometry/strategies/side.hpp>
0025 #include <boost/geometry/strategies/cartesian/intersection.hpp>
0026 #include <boost/geometry/strategies/spherical/intersection.hpp>
0027 #include <boost/geometry/strategies/spherical/ssf.hpp>
0028 
0029 
0030 namespace boost { namespace geometry
0031 {
0032 
0033 
0034 /*!
0035 \brief "compound strategy", containing a segment-intersection-strategy
0036        and a side-strategy
0037  */
0038 template
0039 <
0040     typename Tag,
0041     typename Geometry1,
0042     typename Geometry2,
0043     typename IntersectionPoint,
0044     typename RobustPolicy,
0045     typename CalculationType = void
0046 >
0047 struct intersection_strategies
0048 {
0049 private :
0050     // for development BOOST_STATIC_ASSERT((! std::is_same<RobustPolicy, void>::type::value));
0051 
0052     typedef segment_intersection_points
0053     <
0054         IntersectionPoint,
0055         typename detail::segment_ratio_type
0056         <
0057             IntersectionPoint, RobustPolicy
0058         >::type
0059     > ip_type;
0060 
0061 public:
0062     typedef policies::relate::segments_intersection_policy
0063         <
0064             ip_type
0065         > intersection_policy_type;
0066 
0067     typedef typename strategy::intersection::services::default_strategy
0068             <
0069                 Tag,
0070                 CalculationType
0071             >::type segment_intersection_strategy_type;
0072 
0073     typedef typename strategy::side::services::default_strategy
0074         <
0075             Tag,
0076             CalculationType
0077         >::type side_strategy_type;
0078 
0079     typedef RobustPolicy rescale_policy_type;
0080 };
0081 
0082 
0083 }} // namespace boost::geometry
0084 
0085 
0086 #endif // BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP