| 366 | } |
| 367 | |
| 368 | void TestIndexGraphTopology::Builder::BuildGraphFromRequests(vector<EdgeRequest> const & requests) |
| 369 | { |
| 370 | RoadAccess::WayToAccess wayToAccess; |
| 371 | RoadAccess::WayToAccessConditional wayToAccessConditional; |
| 372 | RoadAccess::PointToAccess pointToAccess; |
| 373 | RoadAccess::PointToAccessConditional pointToAccessConditional; |
| 374 | for (auto const & request : requests) |
| 375 | { |
| 376 | BuildSegmentFromEdge(request); |
| 377 | if (request.m_accessType != RoadAccess::Type::Yes) |
| 378 | wayToAccess[request.m_id] = request.m_accessType; |
| 379 | |
| 380 | if (!request.m_accessConditionalType.IsEmpty()) |
| 381 | wayToAccessConditional[request.m_id] = request.m_accessConditionalType; |
| 382 | |
| 383 | // All features have 1 segment. |from| has point index 0, |to| has point index 1. |
| 384 | if (request.m_fromAccessType != RoadAccess::Type::Yes) |
| 385 | pointToAccess[RoadPoint(request.m_id, 0 /* pointId */)] = request.m_fromAccessType; |
| 386 | |
| 387 | if (!request.m_fromAccessConditionalType.IsEmpty()) |
| 388 | pointToAccessConditional[RoadPoint(request.m_id, 0 /* pointId */)] = request.m_fromAccessConditionalType; |
| 389 | |
| 390 | if (request.m_toAccessType != RoadAccess::Type::Yes) |
| 391 | pointToAccess[RoadPoint(request.m_id, 1 /* pointId */)] = request.m_toAccessType; |
| 392 | |
| 393 | if (!request.m_toAccessConditionalType.IsEmpty()) |
| 394 | pointToAccessConditional[RoadPoint(request.m_id, 1 /* pointId */)] = request.m_toAccessConditionalType; |
| 395 | } |
| 396 | |
| 397 | m_roadAccess.SetAccess(std::move(wayToAccess), std::move(pointToAccess)); |
| 398 | m_roadAccess.SetAccessConditional(std::move(wayToAccessConditional), std::move(pointToAccessConditional)); |
| 399 | if (m_currentTimeGetter) |
| 400 | m_roadAccess.SetCurrentTimeGetter(m_currentTimeGetter); |
| 401 | } |
| 402 | |
| 403 | void TestIndexGraphTopology::Builder::BuildSegmentFromEdge(EdgeRequest const & request) |
| 404 | { |
no test coverage detected