[routing] Remove passed intermediate points when assembling a modified route mid-navigation

Fixes OM #9592

Signed-off-by: Michał Brzozowski <www.haxor@gmail.com>

# Conflicts:
#	libs/map/routing_manager.cpp
This commit is contained in:
Michał Brzozowski
2025-05-24 08:14:34 +02:00
committed by David Gekeler
parent 697e871c1b
commit 57ecf3848b
4 changed files with 24 additions and 3 deletions

View File

@@ -347,6 +347,16 @@ void RoutePointsLayout::SetFollowingMode(bool enabled)
m_editSession.GetMarkForEdit<RouteMarkPoint>(markId)->SetFollowingMode(enabled);
}
void RoutePointsLayout::RemovePassedPoints()
{
for (auto markId : m_manager.GetUserMarkIds(UserMark::Type::ROUTING)) {
auto * mark = m_editSession.GetMarkForEdit<RouteMarkPoint>(markId);
if (mark->IsPassed())
m_editSession.DeleteUserMark(mark->GetId());
}
}
RouteMarkPoint const * RoutePointsLayout::GetRoutePoint(RouteMarkType type, size_t intermediateIndex) const
{
for (auto markId : m_manager.GetUserMarkIds(UserMark::Type::ROUTING))