| 83 | } |
| 84 | |
| 85 | void FollowedPolyline::Update() |
| 86 | { |
| 87 | size_t n = m_poly.GetSize(); |
| 88 | ASSERT_GREATER(n, 1, ()); |
| 89 | --n; |
| 90 | |
| 91 | m_segDistance.clear(); |
| 92 | m_segDistance.reserve(n); |
| 93 | m_segProj.clear(); |
| 94 | m_segProj.reserve(n); |
| 95 | |
| 96 | double dist = 0.0; |
| 97 | for (size_t i = 0; i < n; ++i) |
| 98 | { |
| 99 | m2::PointD const & p1 = m_poly.GetPoint(i); |
| 100 | m2::PointD const & p2 = m_poly.GetPoint(i + 1); |
| 101 | |
| 102 | dist += mercator::DistanceOnEarth(p1, p2); |
| 103 | |
| 104 | m_segDistance.emplace_back(dist); |
| 105 | m_segProj.emplace_back(p1, p2); |
| 106 | } |
| 107 | |
| 108 | m_current = Iter(m_poly.Front(), 0); |
| 109 | } |
| 110 | |
| 111 | bool FollowedPolyline::IsFakeSegment(size_t index) const |
| 112 | { |
nothing calls this directly
no test coverage detected