File indexing completed on 2025-01-18 09:36:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP
0014 #define BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP
0015
0016
0017
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
0036
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
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 }}
0084
0085
0086 #endif