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;