diff options
Diffstat (limited to 'src/lib/ratio.cc')
| -rw-r--r-- | src/lib/ratio.cc | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/lib/ratio.cc b/src/lib/ratio.cc index fc36415c5..bc83ae87c 100644 --- a/src/lib/ratio.cc +++ b/src/lib/ratio.cc @@ -73,3 +73,19 @@ Ratio::from_ratio (float r) return *j; } +Ratio const * +Ratio::nearest_from_ratio (float r) +{ + Ratio const * nearest = 0; + float distance = FLT_MAX; + + for (vector<Ratio const *>::iterator i = _ratios.begin (); i != _ratios.end(); ++i) { + float const d = fabs ((*i)->ratio() - r); + if (d < distance) { + distance = d; + nearest = *i; + } + } + + return nearest; +} |
