Mercurial > hg > vamp-build-and-test
comparison DEPENDENCIES/generic/include/boost/geometry/strategies/intersection.hpp @ 16:2665513ce2d3
Add boost headers
author | Chris Cannam |
---|---|
date | Tue, 05 Aug 2014 11:11:38 +0100 |
parents | |
children | c530137014c0 |
comparison
equal
deleted
inserted
replaced
15:663ca0da4350 | 16:2665513ce2d3 |
---|---|
1 // Boost.Geometry (aka GGL, Generic Geometry Library) | |
2 | |
3 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. | |
4 | |
5 // Use, modification and distribution is subject to the Boost Software License, | |
6 // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at | |
7 // http://www.boost.org/LICENSE_1_0.txt) | |
8 | |
9 #ifndef BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP | |
10 #define BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP | |
11 | |
12 #include <boost/geometry/core/point_type.hpp> | |
13 #include <boost/geometry/geometries/segment.hpp> | |
14 | |
15 #include <boost/geometry/policies/relate/intersection_points.hpp> | |
16 #include <boost/geometry/policies/relate/direction.hpp> | |
17 #include <boost/geometry/policies/relate/tupled.hpp> | |
18 | |
19 #include <boost/geometry/strategies/side.hpp> | |
20 #include <boost/geometry/strategies/intersection_result.hpp> | |
21 | |
22 #include <boost/geometry/strategies/cartesian/cart_intersect.hpp> | |
23 | |
24 | |
25 namespace boost { namespace geometry | |
26 { | |
27 | |
28 | |
29 // The intersection strategy is a "compound strategy", | |
30 // it contains a segment-intersection-strategy | |
31 // and a side-strategy | |
32 /*! | |
33 \tparam CalculationType \tparam_calculation | |
34 */ | |
35 template | |
36 < | |
37 typename Tag, | |
38 typename Geometry1, | |
39 typename Geometry2, | |
40 typename IntersectionPoint, | |
41 typename CalculationType = void | |
42 > | |
43 struct strategy_intersection | |
44 { | |
45 private : | |
46 typedef typename geometry::point_type<Geometry1>::type point1_type; | |
47 typedef typename geometry::point_type<Geometry2>::type point2_type; | |
48 typedef typename model::referring_segment<point1_type const> segment1_type; | |
49 typedef typename model::referring_segment<point2_type const> segment2_type; | |
50 | |
51 typedef segment_intersection_points | |
52 < | |
53 IntersectionPoint | |
54 > ip_type; | |
55 | |
56 public: | |
57 typedef strategy::intersection::relate_cartesian_segments | |
58 < | |
59 policies::relate::segments_tupled | |
60 < | |
61 policies::relate::segments_intersection_points | |
62 < | |
63 segment1_type, | |
64 segment2_type, | |
65 ip_type, | |
66 CalculationType | |
67 > , | |
68 policies::relate::segments_direction | |
69 < | |
70 segment1_type, | |
71 segment2_type, | |
72 CalculationType | |
73 >, | |
74 CalculationType | |
75 >, | |
76 CalculationType | |
77 > segment_intersection_strategy_type; | |
78 | |
79 typedef typename strategy::side::services::default_strategy | |
80 < | |
81 Tag, | |
82 CalculationType | |
83 >::type side_strategy_type; | |
84 }; | |
85 | |
86 | |
87 | |
88 | |
89 }} // namespace boost::geometry | |
90 | |
91 | |
92 #endif // BOOST_GEOMETRY_STRATEGIES_INTERSECTION_HPP |