]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/geometry/algorithms/detail/relate/areal_areal.hpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / boost / geometry / algorithms / detail / relate / areal_areal.hpp
index 18be9a255d67592a6d14a891deda5be08dc64acb..99df598da865fccd5938cc3886fe1685bf46301e 100644 (file)
@@ -209,10 +209,10 @@ struct areal_areal
     typedef typename geometry::point_type<Geometry1>::type point1_type;
     typedef typename geometry::point_type<Geometry2>::type point2_type;
     
-    template <typename Result, typename IntersectionStrategy>
+    template <typename Result, typename Strategy>
     static inline void apply(Geometry1 const& geometry1, Geometry2 const& geometry2,
                              Result & result,
-                             IntersectionStrategy const& intersection_strategy)
+                             Strategy const& strategy)
     {
 // TODO: If Areal geometry may have infinite size, change the following line:
 
@@ -226,38 +226,25 @@ struct areal_areal
         typedef typename turns::get_turns
             <
                 Geometry1, Geometry2
-            >::template turn_info_type<IntersectionStrategy>::type turn_type;
+            >::template turn_info_type<Strategy>::type turn_type;
         std::vector<turn_type> turns;
 
         interrupt_policy_areal_areal<Result> interrupt_policy(geometry1, geometry2, result);
 
-        turns::get_turns<Geometry1, Geometry2>::apply(turns, geometry1, geometry2, interrupt_policy, intersection_strategy);
+        turns::get_turns<Geometry1, Geometry2>::apply(turns, geometry1, geometry2, interrupt_policy, strategy);
         if ( BOOST_GEOMETRY_CONDITION(result.interrupt) )
             return;
 
-        typedef typename IntersectionStrategy::cs_tag cs_tag;
+        typedef typename Strategy::cs_tag cs_tag;
 
-        typedef typename IntersectionStrategy::template point_in_geometry_strategy
-            <
-                Geometry1, Geometry2
-            >::type point_in_areal_strategy12_type;
-        point_in_areal_strategy12_type point_in_areal_strategy12
-            = intersection_strategy.template get_point_in_geometry_strategy<Geometry1, Geometry2>();
-        typedef typename IntersectionStrategy::template point_in_geometry_strategy
-            <
-                Geometry2, Geometry1
-            >::type point_in_areal_strategy21_type;
-        point_in_areal_strategy21_type point_in_areal_strategy21
-            = intersection_strategy.template get_point_in_geometry_strategy<Geometry2, Geometry1>();
-
-        no_turns_aa_pred<Geometry2, Result, point_in_areal_strategy12_type, false>
-            pred1(geometry2, result, point_in_areal_strategy12);
+        no_turns_aa_pred<Geometry2, Result, Strategy, false>
+            pred1(geometry2, result, strategy);
         for_each_disjoint_geometry_if<0, Geometry1>::apply(turns.begin(), turns.end(), geometry1, pred1);
         if ( BOOST_GEOMETRY_CONDITION(result.interrupt) )
             return;
 
-        no_turns_aa_pred<Geometry1, Result, point_in_areal_strategy21_type, true>
-            pred2(geometry1, result, point_in_areal_strategy21);
+        no_turns_aa_pred<Geometry1, Result, Strategy, true>
+            pred2(geometry1, result, strategy);
         for_each_disjoint_geometry_if<1, Geometry2>::apply(turns.begin(), turns.end(), geometry2, pred2);
         if ( BOOST_GEOMETRY_CONDITION(result.interrupt) )
             return;
@@ -282,8 +269,7 @@ struct areal_areal
             {
                 // analyse sorted turns
                 turns_analyser<turn_type, 0> analyser;
-                analyse_each_turn(result, analyser, turns.begin(), turns.end(),
-                                  point_in_areal_strategy12.get_equals_point_point_strategy());
+                analyse_each_turn(result, analyser, turns.begin(), turns.end(), strategy);
 
                 if ( BOOST_GEOMETRY_CONDITION(result.interrupt) )
                     return;
@@ -297,8 +283,8 @@ struct areal_areal
             {
                 // analyse rings for which turns were not generated
                 // or only i/i or u/u was generated
-                uncertain_rings_analyser<0, Result, Geometry1, Geometry2, point_in_areal_strategy12_type>
-                    rings_analyser(result, geometry1, geometry2, point_in_areal_strategy12);
+                uncertain_rings_analyser<0, Result, Geometry1, Geometry2, Strategy>
+                    rings_analyser(result, geometry1, geometry2, strategy);
                 analyse_uncertain_rings<0>::apply(rings_analyser, turns.begin(), turns.end());
 
                 if ( BOOST_GEOMETRY_CONDITION(result.interrupt) )
@@ -323,8 +309,7 @@ struct areal_areal
             {
                 // analyse sorted turns
                 turns_analyser<turn_type, 1> analyser;
-                analyse_each_turn(result, analyser, turns.begin(), turns.end(),
-                                  point_in_areal_strategy21.get_equals_point_point_strategy());
+                analyse_each_turn(result, analyser, turns.begin(), turns.end(), strategy);
 
                 if ( BOOST_GEOMETRY_CONDITION(result.interrupt) )
                     return;
@@ -338,8 +323,8 @@ struct areal_areal
             {
                 // analyse rings for which turns were not generated
                 // or only i/i or u/u was generated
-                uncertain_rings_analyser<1, Result, Geometry2, Geometry1, point_in_areal_strategy21_type>
-                    rings_analyser(result, geometry2, geometry1, point_in_areal_strategy21);
+                uncertain_rings_analyser<1, Result, Geometry2, Geometry1, Strategy>
+                    rings_analyser(result, geometry2, geometry1, strategy);
                 analyse_uncertain_rings<1>::apply(rings_analyser, turns.begin(), turns.end());
 
                 //if ( result.interrupt )