summaryrefslogtreecommitdiff
path: root/src/lib/ratio.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ratio.cc')
-rw-r--r--src/lib/ratio.cc16
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;
+}