X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=ceph%2Fsrc%2Fboost%2Fboost%2Fgeometry%2Falgorithms%2Fdetail%2Frelate%2Fareal_areal.hpp;fp=ceph%2Fsrc%2Fboost%2Fboost%2Fgeometry%2Falgorithms%2Fdetail%2Frelate%2Fareal_areal.hpp;h=99df598da865fccd5938cc3886fe1685bf46301e;hb=1e59de90020f1d8d374046ef9cca56ccd4e806e2;hp=18be9a255d67592a6d14a891deda5be08dc64acb;hpb=bd41e436e25044e8e83156060a37c23cb661c364;p=ceph.git diff --git a/ceph/src/boost/boost/geometry/algorithms/detail/relate/areal_areal.hpp b/ceph/src/boost/boost/geometry/algorithms/detail/relate/areal_areal.hpp index 18be9a255..99df598da 100644 --- a/ceph/src/boost/boost/geometry/algorithms/detail/relate/areal_areal.hpp +++ b/ceph/src/boost/boost/geometry/algorithms/detail/relate/areal_areal.hpp @@ -209,10 +209,10 @@ struct areal_areal typedef typename geometry::point_type::type point1_type; typedef typename geometry::point_type::type point2_type; - template + template 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::type turn_type; + >::template turn_info_type::type turn_type; std::vector turns; interrupt_policy_areal_areal interrupt_policy(geometry1, geometry2, result); - turns::get_turns::apply(turns, geometry1, geometry2, interrupt_policy, intersection_strategy); + turns::get_turns::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(); - 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(); - - no_turns_aa_pred - pred1(geometry2, result, point_in_areal_strategy12); + no_turns_aa_pred + 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 - pred2(geometry1, result, point_in_areal_strategy21); + no_turns_aa_pred + 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 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 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 )