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