Welcome to mirror list, hosted at ThFree Co, Russian Federation.

speed_groups.cpp « traffic - github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 080bcff3f83c5128e5e78243466f063fa11b1032 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "traffic/speed_groups.hpp"

#include "base/math.hpp"

namespace traffic
{
uint32_t const kSpeedGroupThresholdPercentage[] = {8, 16, 33, 58, 83, 100, 100, 100};

SpeedGroup GetSpeedGroupByPercentage(double p)
{
  p = base::Clamp(p, 0.0, 100.0);
  SpeedGroup res = SpeedGroup::Unknown;
  for (int i = static_cast<int>(SpeedGroup::Count) - 1; i >= 0; --i)
  {
    if (p <= kSpeedGroupThresholdPercentage[i])
      res = static_cast<SpeedGroup>(i);
  }
  return res;
}

std::string DebugPrint(SpeedGroup const & group)
{
  switch (group)
  {
  case SpeedGroup::G0: return "G0";
  case SpeedGroup::G1: return "G1";
  case SpeedGroup::G2: return "G2";
  case SpeedGroup::G3: return "G3";
  case SpeedGroup::G4: return "G4";
  case SpeedGroup::G5: return "G5";
  case SpeedGroup::TempBlock: return "TempBlock";
  case SpeedGroup::Unknown: return "Unknown";
  case SpeedGroup::Count: return "Count";
  }
  UNREACHABLE();
}
}  // namespace traffic