void ContestDijkstra::CopySolution(ContestTraceVector &result) const { assert(num_stages <= MAX_STAGES); assert(solution_valid); result.clear(); for (unsigned i = 0; i < num_stages; ++i) result.append(GetPoint(solution[i])); }
void OLCTriangle::CopySolution(ContestTraceVector &result) const { assert(num_stages <= MAX_STAGES); assert(solution_valid); result.clear(); for (int i = 3; i >= 0; --i) result.append(GetPoint(solution[i])); }
static void WriteTrace(TextWriter &writer, const ContestTraceVector &trace) { JSON::ArrayWriter array(writer); const ContestTracePoint *previous = NULL; for (auto i = trace.begin(), end = trace.end(); i != end; ++i) { array.WriteElement(WritePoint, *i, previous); previous = &*i; } }
void TrailRenderer::Draw(Canvas &canvas, const WindowProjection &projection, const ContestTraceVector &trace) { points.GrowDiscard(trace.size()); unsigned n = 0; for (auto i = trace.begin(), end = trace.end(); i != end; ++i) points[n++] = projection.GeoToScreen(i->get_location()); canvas.DrawPolyline(points.begin(), n); }
void OLCLeague::copy_solution(ContestTraceVector &vec) const { vec.clear(); if (solution_found) { vec = best_solution; } }
void OLCTriangle::CopySolution(ContestTraceVector &result) const { assert(num_stages <= MAX_STAGES); ContestDijkstra::CopySolution(result); assert(result.size() == 4); std::swap(result[0], result[3]); std::swap(result[1], result[2]); }
void TrailRenderer::DrawTraceVector(Canvas &canvas, const Projection &projection, const ContestTraceVector &trace) { const unsigned n = trace.size(); RasterPoint *p = Prepare(n); for (const auto &i : trace) *p++ = projection.GeoToScreen(i.GetLocation()); DrawPreparedPolyline(canvas, n); }
void ContestDijkstra::CopySolution(ContestTraceVector &vec) const { assert(num_stages <= MAX_STAGES); vec.clear(); if (solution_found) { assert(num_stages <= MAX_STAGES); vec = best_solution; } }
void TrailRenderer::DrawTriangle(Canvas &canvas, const Projection &projection, const ContestTraceVector &trace) { assert(trace.size() == 5); const unsigned start = 1, n = 3; RasterPoint *p = Prepare(n); for (unsigned i = start; i < start + n; ++i) *p++ = projection.GeoToScreen(trace[i].GetLocation()); DrawPreparedPolygon(canvas, n); }
void OLCTriangle::CopySolution(ContestTraceVector &result) const { result = solution; assert(result.size() == 5); }