Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/geometry/strategies/intersection.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
comparison
equal
deleted
inserted
replaced
100:793467b5e61c | 101:c530137014c0 |
---|---|
18 | 18 |
19 #include <boost/geometry/strategies/side.hpp> | 19 #include <boost/geometry/strategies/side.hpp> |
20 #include <boost/geometry/strategies/intersection_result.hpp> | 20 #include <boost/geometry/strategies/intersection_result.hpp> |
21 | 21 |
22 #include <boost/geometry/strategies/cartesian/cart_intersect.hpp> | 22 #include <boost/geometry/strategies/cartesian/cart_intersect.hpp> |
23 #include <boost/geometry/policies/robustness/segment_ratio_type.hpp> | |
23 | 24 |
24 | 25 |
25 namespace boost { namespace geometry | 26 namespace boost { namespace geometry |
26 { | 27 { |
27 | 28 |
28 | 29 |
29 // The intersection strategy is a "compound strategy", | |
30 // it contains a segment-intersection-strategy | |
31 // and a side-strategy | |
32 /*! | 30 /*! |
33 \tparam CalculationType \tparam_calculation | 31 \brief "compound strategy", containing a segment-intersection-strategy |
34 */ | 32 and a side-strategy |
33 */ | |
35 template | 34 template |
36 < | 35 < |
37 typename Tag, | 36 typename Tag, |
38 typename Geometry1, | 37 typename Geometry1, |
39 typename Geometry2, | 38 typename Geometry2, |
40 typename IntersectionPoint, | 39 typename IntersectionPoint, |
40 typename RobustPolicy, | |
41 typename CalculationType = void | 41 typename CalculationType = void |
42 > | 42 > |
43 struct strategy_intersection | 43 struct strategy_intersection |
44 { | 44 { |
45 private : | 45 private : |
46 // for development BOOST_STATIC_ASSERT((! boost::is_same<RobustPolicy, void>::type::value)); | |
47 | |
46 typedef typename geometry::point_type<Geometry1>::type point1_type; | 48 typedef typename geometry::point_type<Geometry1>::type point1_type; |
47 typedef typename geometry::point_type<Geometry2>::type point2_type; | 49 typedef typename geometry::point_type<Geometry2>::type point2_type; |
48 typedef typename model::referring_segment<point1_type const> segment1_type; | 50 typedef typename model::referring_segment<point1_type const> segment1_type; |
49 typedef typename model::referring_segment<point2_type const> segment2_type; | 51 typedef typename model::referring_segment<point2_type const> segment2_type; |
50 | 52 |
51 typedef segment_intersection_points | 53 typedef segment_intersection_points |
54 < | |
55 IntersectionPoint, | |
56 typename geometry::segment_ratio_type | |
52 < | 57 < |
53 IntersectionPoint | 58 IntersectionPoint, RobustPolicy |
54 > ip_type; | 59 >::type |
60 > ip_type; | |
55 | 61 |
56 public: | 62 public: |
57 typedef strategy::intersection::relate_cartesian_segments | 63 typedef strategy::intersection::relate_cartesian_segments |
58 < | 64 < |
59 policies::relate::segments_tupled | 65 policies::relate::segments_tupled |
60 < | 66 < |
61 policies::relate::segments_intersection_points | 67 policies::relate::segments_intersection_points |
62 < | 68 < |
63 segment1_type, | 69 ip_type |
64 segment2_type, | |
65 ip_type, | |
66 CalculationType | |
67 > , | 70 > , |
68 policies::relate::segments_direction | 71 policies::relate::segments_direction |
69 < | |
70 segment1_type, | |
71 segment2_type, | |
72 CalculationType | |
73 >, | |
74 CalculationType | |
75 >, | 72 >, |
76 CalculationType | 73 CalculationType |
77 > segment_intersection_strategy_type; | 74 > segment_intersection_strategy_type; |
78 | 75 |
79 typedef typename strategy::side::services::default_strategy | 76 typedef typename strategy::side::services::default_strategy |
80 < | 77 < |
81 Tag, | 78 Tag, |
82 CalculationType | 79 CalculationType |
83 >::type side_strategy_type; | 80 >::type side_strategy_type; |
81 | |
82 typedef RobustPolicy rescale_policy_type; | |
84 }; | 83 }; |
85 | 84 |
86 | 85 // Version for box_box intersection or other detail calls not needing a strategy |
86 struct strategy_intersection_empty {}; | |
87 | 87 |
88 | 88 |
89 }} // namespace boost::geometry | 89 }} // namespace boost::geometry |
90 | 90 |
91 | 91 |