MCPcopy Create free account
hub / github.com/comaps/comaps / AddSubrouteData

Method AddSubrouteData

libs/drape_frontend/route_renderer.cpp:617–661  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

615}
616
617void RouteRenderer::AddSubrouteData(ref_ptr<dp::GraphicsContext> context, drape_ptr<SubrouteData> && subrouteData,
618 ref_ptr<gpu::ProgramManager> mng)
619{
620 auto const it = FindSubroute(m_subroutes, subrouteData->m_subrouteId);
621 if (it != m_subroutes.end())
622 {
623 if (!it->m_subrouteData.empty())
624 {
625 int const recacheId = it->m_subrouteData.front()->m_recacheId;
626 if (recacheId < subrouteData->m_recacheId)
627 {
628 // Remove obsolete subroute data.
629 it->m_subrouteData.clear();
630 it->m_markersData.reset();
631 it->m_arrowsData.reset();
632 it->m_arrowBorders.clear();
633
634 it->m_subroute = subrouteData->m_subroute;
635 it->m_subrouteId = subrouteData->m_subrouteId;
636 it->m_length = subrouteData->m_subroute->m_polyline.GetLength();
637 }
638 else if (recacheId > subrouteData->m_recacheId)
639 {
640 return;
641 }
642 }
643
644 it->m_subrouteData.push_back(std::move(subrouteData));
645 BuildBuckets(context, it->m_subrouteData.back()->m_renderProperty, mng);
646 }
647 else
648 {
649 // Add new subroute.
650 SubrouteInfo info;
651 info.m_subroute = subrouteData->m_subroute;
652 info.m_subrouteId = subrouteData->m_subrouteId;
653 info.m_length = subrouteData->m_subroute->m_polyline.GetLength();
654 info.m_subrouteData.push_back(std::move(subrouteData));
655 BuildBuckets(context, info.m_subrouteData.back()->m_renderProperty, mng);
656 m_subroutes.push_back(std::move(info));
657
658 std::sort(m_subroutes.begin(), m_subroutes.end(), [](SubrouteInfo const & info1, SubrouteInfo const & info2)
659 { return info1.m_subroute->m_baseDistance > info2.m_subroute->m_baseDistance; });
660 }
661}
662
663void RouteRenderer::AddSubrouteArrowsData(ref_ptr<dp::GraphicsContext> context,
664 drape_ptr<SubrouteArrowsData> && routeArrowsData,

Callers 1

AcceptMessageMethod · 0.80

Calls 11

FindSubrouteFunction · 0.85
BuildBucketsFunction · 0.85
frontMethod · 0.80
backMethod · 0.80
endMethod · 0.45
emptyMethod · 0.45
clearMethod · 0.45
resetMethod · 0.45
GetLengthMethod · 0.45
push_backMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected