]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/boost/boost/geometry/algorithms/difference.hpp
import new upstream nautilus stable release 14.2.8
[ceph.git] / ceph / src / boost / boost / geometry / algorithms / difference.hpp
index c11ceca2434fd3ecdcc947c647fdc20843672aba..7a96e130dc12c5f265dcb1842db7ce067c681b6a 100644 (file)
@@ -2,8 +2,8 @@
 
 // Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands.
 
-// This file was modified by Oracle on 2017.
-// Modifications copyright (c) 2017, Oracle and/or its affiliates.
+// This file was modified by Oracle on 2017, 2019.
+// Modifications copyright (c) 2017, 2019, Oracle and/or its affiliates.
 
 // Contributed and/or modified by Adam Wulkiewicz, on behalf of Oracle
 
@@ -55,13 +55,11 @@ template
     typename GeometryOut,
     typename Geometry1,
     typename Geometry2,
-    typename RobustPolicy,
     typename OutputIterator,
     typename Strategy
 >
 inline OutputIterator difference_insert(Geometry1 const& geometry1,
                                         Geometry2 const& geometry2,
-                                        RobustPolicy const& robust_policy,
                                         OutputIterator out,
                                         Strategy const& strategy)
 {
@@ -69,6 +67,17 @@ inline OutputIterator difference_insert(Geometry1 const& geometry1,
     concepts::check<Geometry2 const>();
     concepts::check<GeometryOut>();
 
+    typedef typename geometry::rescale_overlay_policy_type
+        <
+            Geometry1,
+            Geometry2,
+            typename Strategy::cs_tag
+        >::type rescale_policy_type;
+
+    rescale_policy_type robust_policy
+            = geometry::get_rescale_policy<rescale_policy_type>(
+                geometry1, geometry2, strategy);
+
     return geometry::dispatch::intersection_insert
         <
             Geometry1, Geometry2,
@@ -100,12 +109,10 @@ template
     typename GeometryOut,
     typename Geometry1,
     typename Geometry2,
-    typename RobustPolicy,
     typename OutputIterator
 >
 inline OutputIterator difference_insert(Geometry1 const& geometry1,
                                         Geometry2 const& geometry2,
-                                        RobustPolicy const& robust_policy,
                                         OutputIterator out)
 {
     typedef typename strategy::relate::services::default_strategy
@@ -114,8 +121,8 @@ inline OutputIterator difference_insert(Geometry1 const& geometry1,
             Geometry2
         >::type strategy_type;
 
-    return difference_insert<GeometryOut>(geometry1, geometry2,
-                                          robust_policy, out, strategy_type());
+    return difference_insert<GeometryOut>(geometry1, geometry2, out,
+                                          strategy_type());
 }
 
 
@@ -131,20 +138,18 @@ struct difference
     <
         typename Geometry1,
         typename Geometry2,
-        typename RobustPolicy,
         typename Collection,
         typename Strategy
     >
     static inline void apply(Geometry1 const& geometry1,
                              Geometry2 const& geometry2,
-                             RobustPolicy const& robust_policy,
                              Collection & output_collection,
                              Strategy const& strategy)
     {
         typedef typename boost::range_value<Collection>::type geometry_out;
 
         detail::difference::difference_insert<geometry_out>(
-            geometry1, geometry2, robust_policy,
+            geometry1, geometry2,
             range::back_inserter(output_collection),
             strategy);
     }
@@ -153,19 +158,17 @@ struct difference
     <
         typename Geometry1,
         typename Geometry2,
-        typename RobustPolicy,
         typename Collection
     >
     static inline void apply(Geometry1 const& geometry1,
                              Geometry2 const& geometry2,
-                             RobustPolicy const& robust_policy,
                              Collection & output_collection,
                              default_strategy)
     {
         typedef typename boost::range_value<Collection>::type geometry_out;
         
         detail::difference::difference_insert<geometry_out>(
-            geometry1, geometry2, robust_policy,
+            geometry1, geometry2,
             range::back_inserter(output_collection));
     }
 };
@@ -185,18 +188,7 @@ struct difference
                              Collection& output_collection,
                              Strategy const& strategy)
     {
-        typedef typename geometry::rescale_overlay_policy_type
-            <
-                Geometry1,
-                Geometry2
-            >::type rescale_policy_type;
-
-        rescale_policy_type robust_policy
-                = geometry::get_rescale_policy<rescale_policy_type>(geometry1,
-                                                                    geometry2);
-        
         resolve_strategy::difference::apply(geometry1, geometry2,
-                                            robust_policy,
                                             output_collection,
                                             strategy);
     }