]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/boost/geometry/strategies/intersection_strategies.hpp
import quincy beta 17.1.0
[ceph.git] / ceph / src / boost / boost / geometry / strategies / intersection_strategies.hpp
CommitLineData
7c673cae
FG
1// Boost.Geometry (aka GGL, Generic Geometry Library)
2
3// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
4
20effc67
TL
5// This file was modified by Oracle on 2016-2020.
6// Modifications copyright (c) 2016-2020, Oracle and/or its affiliates.
7c673cae
FG
7// Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
8
9// Use, modification and distribution is subject to the Boost Software License,
10// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
11// http://www.boost.org/LICENSE_1_0.txt)
12
13#ifndef BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP
14#define BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP
15
16
20effc67 17//#include <type_traits>
7c673cae 18
20effc67
TL
19#include <boost/geometry/policies/relate/intersection_policy.hpp>
20#include <boost/geometry/policies/robustness/segment_ratio_type.hpp>
7c673cae
FG
21
22#include <boost/geometry/strategies/intersection.hpp>
7c673cae 23#include <boost/geometry/strategies/intersection_result.hpp>
b32b8144 24#include <boost/geometry/strategies/side.hpp>
7c673cae 25
b32b8144 26#include <boost/geometry/strategies/cartesian/intersection.hpp>
7c673cae
FG
27#include <boost/geometry/strategies/cartesian/side_by_triangle.hpp>
28#include <boost/geometry/strategies/spherical/intersection.hpp>
29#include <boost/geometry/strategies/spherical/ssf.hpp>
30
7c673cae
FG
31
32namespace boost { namespace geometry
33{
34
35
36/*!
37\brief "compound strategy", containing a segment-intersection-strategy
38 and a side-strategy
39 */
40template
41<
42 typename Tag,
43 typename Geometry1,
44 typename Geometry2,
45 typename IntersectionPoint,
46 typename RobustPolicy,
47 typename CalculationType = void
48>
49struct intersection_strategies
50{
51private :
20effc67 52 // for development BOOST_STATIC_ASSERT((! std::is_same<RobustPolicy, void>::type::value));
7c673cae
FG
53
54 typedef segment_intersection_points
55 <
56 IntersectionPoint,
92f5a8d4 57 typename detail::segment_ratio_type
7c673cae
FG
58 <
59 IntersectionPoint, RobustPolicy
60 >::type
61 > ip_type;
62
63public:
20effc67 64 typedef policies::relate::segments_intersection_policy
b32b8144 65 <
20effc67 66 ip_type
b32b8144
FG
67 > intersection_policy_type;
68
7c673cae
FG
69 typedef typename strategy::intersection::services::default_strategy
70 <
71 Tag,
7c673cae
FG
72 CalculationType
73 >::type segment_intersection_strategy_type;
74
75 typedef typename strategy::side::services::default_strategy
76 <
77 Tag,
78 CalculationType
79 >::type side_strategy_type;
80
81 typedef RobustPolicy rescale_policy_type;
82};
83
84
85}} // namespace boost::geometry
86
87
88#endif // BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP