From 68dc4b912f0a950a9db4987432c559dd1b0a0ebf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Gl=C3=B6ckner?= Date: Tue, 29 Mar 2016 17:43:58 +0200 Subject: API Refactoring for class Velocity --- src/velocity.cc | 51 +++++++++++++++++++++++++++++---------------------- 1 file changed, 29 insertions(+), 22 deletions(-) (limited to 'src/velocity.cc') diff --git a/src/velocity.cc b/src/velocity.cc index 0ee00df..e08ab9b 100644 --- a/src/velocity.cc +++ b/src/velocity.cc @@ -29,33 +29,40 @@ #include Velocity::Velocity(unsigned int lower, unsigned int upper) + : lower{lower} + , upper{upper} + , samples{} { - this->lower = lower; - this->upper = upper; } -void Velocity::addSample(Sample *sample, float probability) +void Velocity::addSample(Sample* sample, float probability) { - if(samples.find(sample) != samples.end()) { - samples[sample] += probability; - } else { - samples[sample] = probability; - } + if(samples.find(sample) != samples.end()) + { + samples[sample] += probability; + } + else + { + samples[sample] = probability; + } } -Sample *Velocity::getSample() +Sample* Velocity::getSample() const { - Sample *sample = NULL; - - float x = rand.floatInRange(0, 1); - float sum = 0.0; - - Samples::iterator i = samples.begin(); - while(i != samples.end() && x > sum) { - sum += i->second; - sample = i->first; - i++; - } - - return sample; + Sample* sample{nullptr}; + + float x = rand.floatInRange(0, 1); + float sum = 0.0; + + for (auto const & pair: samples) + { + if (x > sum) + { + break; + } + sum += pair.second; + sample = pair.first; + } + + return sample; } -- cgit v1.2.3