Пример #1
0
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]));
}
Пример #2
0
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]));
}
Пример #3
0
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;
  }
}
Пример #4
0
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);
}
Пример #5
0
void 
OLCLeague::copy_solution(ContestTraceVector &vec) const
{
  vec.clear();
  if (solution_found) {
    vec = best_solution;
  }
}
Пример #6
0
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]);
}
Пример #7
0
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);
}
Пример #8
0
void
ContestDijkstra::CopySolution(ContestTraceVector &vec) const
{
  assert(num_stages <= MAX_STAGES);

  vec.clear();
  if (solution_found) {
    assert(num_stages <= MAX_STAGES);

    vec = best_solution;
  }
}
Пример #9
0
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);
}
Пример #10
0
void
OLCTriangle::CopySolution(ContestTraceVector &result) const
{
  result = solution;
  assert(result.size() == 5);
}