void Trace::GetPoints(TracePointVector &v, unsigned min_time, const GeoPoint &location, fixed min_distance) const { /* skip the trace points that are before min_time */ Trace::const_iterator i = begin(), end = this->end(); unsigned skipped = 0; while (true) { if (i == end) /* nothing left */ return; if (i->GetTime() >= min_time) /* found the first point that is within range */ break; ++i; ++skipped; } assert(skipped < size()); v.reserve(size() - skipped); const unsigned range = ProjectRange(location, min_distance); const unsigned sq_range = range * range; do { v.push_back(*i); i.NextSquareRange(sq_range, end); } while (i != end); }
void Trace::GetPoints(TracePointVector& iov) const { iov.clear(); iov.reserve(size()); std::copy(begin(), end(), std::back_inserter(iov)); }
void OLCLeague::copy_solution(TracePointVector &vec) const { vec.clear(); vec.reserve(5); if (solution_found) { for (unsigned i = 0; i < 5; ++i) vec.push_back(best_solution[i]); } }
void OLCDijkstra::copy_solution(TracePointVector &vec) { vec.clear(); if (solution_found) { vec.reserve(num_stages); for (unsigned i = 0; i < num_stages; ++i) vec.push_back(best_solution[i]); } }