Use std::ranges::subrange instead of boost::iterator_range
This commit is contained in:
@@ -136,7 +136,7 @@ class NearestAPI final : public BaseAPI
|
||||
forward_geometry = facade.GetUncompressedForwardGeometry(geometry_id);
|
||||
|
||||
auto osm_node_id =
|
||||
facade.GetOSMNodeIDOfNode(forward_geometry(phantom_node.fwd_segment_position));
|
||||
facade.GetOSMNodeIDOfNode(forward_geometry[phantom_node.fwd_segment_position]);
|
||||
to_node = static_cast<std::uint64_t>(osm_node_id);
|
||||
}
|
||||
|
||||
@@ -146,14 +146,14 @@ class NearestAPI final : public BaseAPI
|
||||
const auto geometry_id = facade.GetGeometryIndex(segment_id).id;
|
||||
const auto geometry = facade.GetUncompressedForwardGeometry(geometry_id);
|
||||
auto osm_node_id =
|
||||
facade.GetOSMNodeIDOfNode(geometry(phantom_node.fwd_segment_position + 1));
|
||||
facade.GetOSMNodeIDOfNode(geometry[phantom_node.fwd_segment_position + 1]);
|
||||
from_node = static_cast<std::uint64_t>(osm_node_id);
|
||||
}
|
||||
else if (phantom_node.forward_segment_id.enabled && phantom_node.fwd_segment_position > 0)
|
||||
{
|
||||
// In the case of one way, rely on forward segment only
|
||||
auto osm_node_id =
|
||||
facade.GetOSMNodeIDOfNode(forward_geometry(phantom_node.fwd_segment_position - 1));
|
||||
facade.GetOSMNodeIDOfNode(forward_geometry[phantom_node.fwd_segment_position - 1]);
|
||||
from_node = static_cast<std::uint64_t>(osm_node_id);
|
||||
}
|
||||
|
||||
|
||||
@@ -29,13 +29,11 @@
|
||||
#include "util/typedefs.hpp"
|
||||
|
||||
#include "osrm/coordinate.hpp"
|
||||
|
||||
#include <boost/range/adaptor/reversed.hpp>
|
||||
#include <boost/range/any_range.hpp>
|
||||
#include <cstddef>
|
||||
|
||||
#include <engine/bearing.hpp>
|
||||
#include <optional>
|
||||
#include <ranges>
|
||||
#include <string>
|
||||
#include <string_view>
|
||||
#include <utility>
|
||||
@@ -50,20 +48,21 @@ class BaseDataFacade
|
||||
using RTreeLeaf = extractor::EdgeBasedNodeSegment;
|
||||
|
||||
using NodeForwardRange =
|
||||
boost::iterator_range<extractor::SegmentDataView::SegmentNodeVector::const_iterator>;
|
||||
using NodeReverseRange = boost::reversed_range<const NodeForwardRange>;
|
||||
std::ranges::subrange<extractor::SegmentDataView::SegmentNodeVector::const_iterator>;
|
||||
using NodeReverseRange = std::ranges::reverse_view<NodeForwardRange>;
|
||||
|
||||
using WeightForwardRange =
|
||||
boost::iterator_range<extractor::SegmentDataView::SegmentWeightVector::const_iterator>;
|
||||
using WeightReverseRange = boost::reversed_range<const WeightForwardRange>;
|
||||
std::ranges::subrange<extractor::SegmentDataView::SegmentWeightVector::const_iterator>;
|
||||
|
||||
using WeightReverseRange = std::ranges::reverse_view<WeightForwardRange>;
|
||||
|
||||
using DurationForwardRange =
|
||||
boost::iterator_range<extractor::SegmentDataView::SegmentDurationVector::const_iterator>;
|
||||
using DurationReverseRange = boost::reversed_range<const DurationForwardRange>;
|
||||
std::ranges::subrange<extractor::SegmentDataView::SegmentDurationVector::const_iterator>;
|
||||
using DurationReverseRange = std::ranges::reverse_view<DurationForwardRange>;
|
||||
|
||||
using DatasourceForwardRange =
|
||||
boost::iterator_range<extractor::SegmentDataView::SegmentDatasourceVector::const_iterator>;
|
||||
using DatasourceReverseRange = boost::reversed_range<const DatasourceForwardRange>;
|
||||
std::ranges::subrange<extractor::SegmentDataView::SegmentDatasourceVector::const_iterator>;
|
||||
using DatasourceReverseRange = std::ranges::reverse_view<DatasourceForwardRange>;
|
||||
|
||||
BaseDataFacade() {}
|
||||
virtual ~BaseDataFacade() {}
|
||||
|
||||
@@ -394,7 +394,7 @@ template <typename RTreeT, typename DataFacadeT> class GeospatialQuery
|
||||
alias_cast<EdgeDuration>(forward_durations[data.fwd_segment_position]);
|
||||
EdgeDistance forward_distance =
|
||||
to_alias<EdgeDistance>(util::coordinate_calculation::greatCircleDistance(
|
||||
datafacade.GetCoordinateOfNode(forward_geometry(data.fwd_segment_position)),
|
||||
datafacade.GetCoordinateOfNode(forward_geometry[data.fwd_segment_position]),
|
||||
point_on_segment));
|
||||
|
||||
const auto reverse_weight_offset = alias_cast<EdgeWeight>(
|
||||
@@ -426,7 +426,7 @@ template <typename RTreeT, typename DataFacadeT> class GeospatialQuery
|
||||
EdgeDistance reverse_distance =
|
||||
to_alias<EdgeDistance>(util::coordinate_calculation::greatCircleDistance(
|
||||
point_on_segment,
|
||||
datafacade.GetCoordinateOfNode(forward_geometry(data.fwd_segment_position + 1))));
|
||||
datafacade.GetCoordinateOfNode(forward_geometry[data.fwd_segment_position + 1])));
|
||||
|
||||
ratio = std::min(1.0, std::max(0.0, ratio));
|
||||
if (data.forward_segment_id.id != SPECIAL_SEGMENTID)
|
||||
|
||||
@@ -61,7 +61,7 @@ inline LegGeometry assembleGeometry(const datafacade::BaseDataFacade &facade,
|
||||
const auto source_geometry_id = facade.GetGeometryIndex(source_node_id).id;
|
||||
const auto source_geometry = facade.GetUncompressedForwardGeometry(source_geometry_id);
|
||||
|
||||
geometry.node_ids.push_back(source_geometry(source_segment_start_coordinate));
|
||||
geometry.node_ids.push_back(source_geometry[source_segment_start_coordinate]);
|
||||
|
||||
auto cumulative_distance = 0.;
|
||||
auto current_distance = 0.;
|
||||
@@ -142,7 +142,7 @@ inline LegGeometry assembleGeometry(const datafacade::BaseDataFacade &facade,
|
||||
LegGeometry::Annotation{current_distance,
|
||||
duration,
|
||||
weight,
|
||||
forward_datasources(target_node.fwd_segment_position)});
|
||||
forward_datasources[target_node.fwd_segment_position]});
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -154,7 +154,7 @@ inline LegGeometry assembleGeometry(const datafacade::BaseDataFacade &facade,
|
||||
from_alias<double>(reversed_target ? target_node.reverse_weight
|
||||
: target_node.forward_weight) /
|
||||
facade.GetWeightMultiplier(),
|
||||
forward_datasources(target_node.fwd_segment_position)});
|
||||
forward_datasources[target_node.fwd_segment_position]});
|
||||
}
|
||||
|
||||
geometry.segment_offsets.push_back(geometry.locations.size());
|
||||
@@ -168,7 +168,7 @@ inline LegGeometry assembleGeometry(const datafacade::BaseDataFacade &facade,
|
||||
const auto target_segment_end_coordinate =
|
||||
target_node.fwd_segment_position + (reversed_target ? 0 : 1);
|
||||
const auto target_geometry = facade.GetUncompressedForwardGeometry(target_geometry_id);
|
||||
geometry.node_ids.push_back(target_geometry(target_segment_end_coordinate));
|
||||
geometry.node_ids.push_back(target_geometry[target_segment_end_coordinate]);
|
||||
|
||||
BOOST_ASSERT(geometry.segment_distances.size() == geometry.segment_offsets.size() - 1);
|
||||
BOOST_ASSERT(geometry.locations.size() > geometry.segment_distances.size());
|
||||
|
||||
Reference in New Issue
Block a user