Mercurial > hg > svcore
diff base/ScaleTickIntervals.h @ 1409:21ba60008200 scale-ticks
More fixes, more tests, including some more that now fail
author | Chris Cannam |
---|---|
date | Wed, 03 May 2017 18:01:25 +0100 |
parents | f89365917d02 |
children | c4af57d59434 |
line wrap: on
line diff
--- a/base/ScaleTickIntervals.h Wed May 03 17:02:01 2017 +0100 +++ b/base/ScaleTickIntervals.h Wed May 03 18:01:25 2017 +0100 @@ -66,7 +66,10 @@ double digMax = log10(fabs(r.max)); double digMin = log10(fabs(r.min)); - int precInc = int(trunc(digInc)) - 1; + int precInc = int(trunc(digInc)); + if (double(precInc) != digInc) { + precInc -= 1; + } bool fixed = false; if (precInc > -4 && precInc < 4) { @@ -96,28 +99,7 @@ std::cerr << "fixed = " << fixed << ", inc = " << inc << ", precInc = " << precInc << ", precRange = " << precRange << ", prec = " << prec << std::endl; - -// int prec = int((ilg > 0.0) ? round(ilg) : trunc(ilg)) - 1; -/* - int dp = 0, sf = 0; - bool fixed = false; - if (prec < 0) { - dp = -prec; - sf = 1; // was 2, but should probably vary - } else { - sf = prec; - } - if (sf == 0) { - sf = 1; - } - if (prec > -4 && prec < 4) { - fixed = true; - } -*/ -/* bool fixed = true; - int dp = sig; - int sf = prec; -*/ + double roundTo = pow(10.0, precInc); std::cerr << "roundTo = " << roundTo << std::endl;