diff options
author | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:24:45 +0900 |
---|---|---|
committer | DongHun Kwak <dh0128.kwak@samsung.com> | 2019-12-05 15:24:45 +0900 |
commit | 5ce1cfc2525b06c0a9e38531813781de0281c96d (patch) | |
tree | 19cc66c6cf6396db288813b2558cc350f1deede2 /boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp | |
parent | 3c1df2168531ad5580076ae08d529054689aeedd (diff) | |
download | boost-5ce1cfc2525b06c0a9e38531813781de0281c96d.tar.gz boost-5ce1cfc2525b06c0a9e38531813781de0281c96d.tar.bz2 boost-5ce1cfc2525b06c0a9e38531813781de0281c96d.zip |
Imported Upstream version 1.71.0upstream/1.71.0
Diffstat (limited to 'boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp')
-rw-r--r-- | boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp b/boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp index f8272794bd..5b5273392c 100644 --- a/boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp +++ b/boost/geometry/algorithms/detail/overlay/get_turn_info_la.hpp @@ -44,7 +44,7 @@ struct get_turn_info_linear_areal typename UniqueSubRange1, typename UniqueSubRange2, typename TurnInfo, - typename IntersectionStrategy, + typename UmbrellaStrategy, typename RobustPolicy, typename OutputIterator > @@ -52,7 +52,7 @@ struct get_turn_info_linear_areal UniqueSubRange1 const& range_p, UniqueSubRange2 const& range_q, TurnInfo const& tp_model, - IntersectionStrategy const& strategy, + UmbrellaStrategy const& umbrella_strategy, RobustPolicy const& robust_policy, OutputIterator out) { @@ -60,11 +60,11 @@ struct get_turn_info_linear_areal < UniqueSubRange1, UniqueSubRange2, typename TurnInfo::point_type, - IntersectionStrategy, + UmbrellaStrategy, RobustPolicy > inters_info; - inters_info inters(range_p, range_q, strategy, robust_policy); + inters_info inters(range_p, range_q, umbrella_strategy, robust_policy); char const method = inters.d_info().how; @@ -79,7 +79,7 @@ struct get_turn_info_linear_areal case 's' : // starts from the middle get_turn_info_for_endpoint<true, true>(range_p, range_q, tp_model, inters, method_none, out, - strategy.get_point_in_point_strategy()); + umbrella_strategy.get_point_in_point_strategy()); break; case 'd' : // disjoint: never do anything @@ -89,30 +89,27 @@ struct get_turn_info_linear_areal { if ( get_turn_info_for_endpoint<false, true>(range_p, range_q, tp_model, inters, method_touch_interior, out, - strategy.get_point_in_point_strategy()) ) + umbrella_strategy.get_point_in_point_strategy()) ) { // do nothing } else { - typedef touch_interior - < - TurnInfo - > policy; + typedef touch_interior<TurnInfo> handler; // If Q (1) arrives (1) if ( inters.d_info().arrival[1] == 1 ) { - policy::template apply<0>(range_p, range_q, tp, + handler::template apply<0>(range_p, range_q, tp, inters.i_info(), inters.d_info(), - inters.sides()); + inters.sides(), umbrella_strategy); } else { // Swap p/q - policy::template apply<1>(range_q, range_p, + handler::template apply<1>(range_q, range_p, tp, inters.i_info(), inters.d_info(), - inters.get_swapped_sides()); + inters.get_swapped_sides(), umbrella_strategy); } if ( tp.operations[1].operation == operation_blocked ) @@ -127,7 +124,7 @@ struct get_turn_info_linear_areal // this function assumes that 'u' must be set for a spike calculate_spike_operation(tp.operations[0].operation, inters, - strategy.get_point_in_point_strategy()); + umbrella_strategy.get_point_in_point_strategy()); *out++ = tp; } @@ -147,14 +144,15 @@ struct get_turn_info_linear_areal // Both touch (both arrive there) if ( get_turn_info_for_endpoint<false, true>(range_p, range_q, tp_model, inters, method_touch, out, - strategy.get_point_in_point_strategy()) ) + umbrella_strategy.get_point_in_point_strategy()) ) { // do nothing } else { touch<TurnInfo>::apply(range_p, range_q, tp, - inters.i_info(), inters.d_info(), inters.sides()); + inters.i_info(), inters.d_info(), inters.sides(), + umbrella_strategy); if ( tp.operations[1].operation == operation_blocked ) { @@ -220,7 +218,7 @@ struct get_turn_info_linear_areal bool ignore_spike = calculate_spike_operation(tp.operations[0].operation, inters, - strategy.get_point_in_point_strategy()); + umbrella_strategy.get_point_in_point_strategy()); if ( ! BOOST_GEOMETRY_CONDITION(handle_spikes) || ignore_spike @@ -236,7 +234,7 @@ struct get_turn_info_linear_areal { if ( get_turn_info_for_endpoint<true, true>(range_p, range_q, tp_model, inters, method_equal, out, - strategy.get_point_in_point_strategy()) ) + umbrella_strategy.get_point_in_point_strategy()) ) { // do nothing } @@ -249,7 +247,8 @@ struct get_turn_info_linear_areal // Both equal // or collinear-and-ending at intersection point equal<TurnInfo>::apply(range_p, range_q, tp, - inters.i_info(), inters.d_info(), inters.sides()); + inters.i_info(), inters.d_info(), inters.sides(), + umbrella_strategy); turn_transformer_ec<false> transformer(method_touch); transformer(tp); @@ -280,7 +279,7 @@ struct get_turn_info_linear_areal if ( get_turn_info_for_endpoint<true, true>( range_p, range_q, tp_model, inters, method_collinear, out, - strategy.get_point_in_point_strategy()) ) + umbrella_strategy.get_point_in_point_strategy()) ) { // do nothing } @@ -297,7 +296,8 @@ struct get_turn_info_linear_areal { // Collinear, but similar thus handled as equal equal<TurnInfo>::apply(range_p, range_q, tp, - inters.i_info(), inters.d_info(), inters.sides()); + inters.i_info(), inters.d_info(), inters.sides(), + umbrella_strategy); method_replace = method_touch; version = append_equal; @@ -359,13 +359,13 @@ struct get_turn_info_linear_areal if ( range_p.is_first_segment() && equals::equals_point_point(range_p.at(0), tp.point, - strategy.get_point_in_point_strategy()) ) + umbrella_strategy.get_point_in_point_strategy()) ) { tp.operations[0].position = position_front; } else if ( range_p.is_last_segment() && equals::equals_point_point(range_p.at(1), tp.point, - strategy.get_point_in_point_strategy()) ) + umbrella_strategy.get_point_in_point_strategy()) ) { tp.operations[0].position = position_back; } |