Mercurial > hg > svgui
comparison layer/SliceLayer.cpp @ 1256:5a10e9d924d4
Make some corrections to crosshair (measure cursor) positioning and feature descriptions. Needs review.
author | Chris Cannam |
---|---|
date | Tue, 07 Mar 2017 18:54:15 +0000 |
parents | bbdfe9b57857 |
children | 5bab9562eaa3 |
comparison
equal
deleted
inserted
replaced
1255:bbdfe9b57857 | 1256:5a10e9d924d4 |
---|---|
113 { | 113 { |
114 minbin = 0; | 114 minbin = 0; |
115 maxbin = 0; | 115 maxbin = 0; |
116 if (!m_sliceableModel) return ""; | 116 if (!m_sliceableModel) return ""; |
117 | 117 |
118 minbin = int(round(getBinForX(v, p.x()))); | 118 minbin = int(getBinForX(v, p.x())); |
119 maxbin = int(round(getBinForX(v, p.x() + 1))); | 119 maxbin = int(getBinForX(v, p.x() + 1)); |
120 | 120 |
121 int mh = m_sliceableModel->getHeight(); | 121 int mh = m_sliceableModel->getHeight(); |
122 if (minbin >= mh) minbin = mh - 1; | 122 if (minbin >= mh) minbin = mh - 1; |
123 if (maxbin >= mh) maxbin = mh - 1; | 123 if (maxbin >= mh) maxbin = mh - 1; |
124 if (minbin < 0) minbin = 0; | 124 if (minbin < 0) minbin = 0; |
235 int w = pw - origin; | 235 int w = pw - origin; |
236 if (w < 1) w = 1; | 236 if (w < 1) w = 1; |
237 | 237 |
238 x = x - origin; | 238 x = x - origin; |
239 if (x < 0) x = 0; | 239 if (x < 0) x = 0; |
240 | |
241 double eps = 1e-10; | |
240 | 242 |
241 switch (m_binScale) { | 243 switch (m_binScale) { |
242 | 244 |
243 case LinearBins: | 245 case LinearBins: |
244 bin = int((x * count) / w + 0.0001); | 246 bin = (x * count) / w + eps; |
245 break; | 247 break; |
246 | 248 |
247 case LogBins: | 249 case LogBins: |
248 bin = int(pow(10.0, (x * log10(count + 1)) / w) - 1 + 0.0001); | 250 bin = pow(10.0, (x * log10(count + 1)) / w) - 1.0 + eps; |
249 break; | 251 break; |
250 | 252 |
251 case InvertedLogBins: | 253 case InvertedLogBins: |
252 bin = count + 1 - int(pow(10.0, (log10(count) * (w - x)) / double(w)) + 0.0001); | 254 bin = count + 1 - pow(10.0, (log10(count) * (w - x)) / double(w)) + eps; |
253 break; | 255 break; |
254 } | 256 } |
255 | 257 |
256 return bin + m_minbin; | 258 return bin + m_minbin; |
257 } | 259 } |