Mercurial > hg > svgui
diff layer/Colour3DPlotLayer.cpp @ 1114:a42e5a3c63ef spectrogram-minor-refactor
Tidy
author | Chris Cannam |
---|---|
date | Tue, 19 Jul 2016 14:50:39 +0100 |
parents | 261a00010918 |
children | d930ff725f64 |
line wrap: on
line diff
--- a/layer/Colour3DPlotLayer.cpp Tue Jul 19 14:49:46 2016 +0100 +++ b/layer/Colour3DPlotLayer.cpp Tue Jul 19 14:50:39 2016 +0100 @@ -1045,24 +1045,7 @@ return values; } -/*!!! replace this -bool -Colour3DPlotLayer::shouldPaintDenseIn(const LayerGeometryProvider *v) const -{ - if (!m_model || !v || !(v->getViewManager())) { - return false; - } - double srRatio = - v->getViewManager()->getMainModelSampleRate() / m_model->getSampleRate(); - if (m_opaque || - m_smooth || - m_model->getHeight() >= v->getPaintHeight() || - ((m_model->getResolution() * srRatio) / v->getZoomLevel()) < 2) { - return true; - } - return false; -} -*/ + Colour3DPlotRenderer * Colour3DPlotLayer::getRenderer(const LayerGeometryProvider *v) const { @@ -1167,151 +1150,6 @@ paintWithRenderer(v, paint, rect); } -/*!!! This will be needed in some form still. - - sv_frame_t modelStart = m_model->getStartFrame(); - sv_frame_t modelEnd = m_model->getEndFrame(); - int modelResolution = m_model->getResolution(); - - // The cache is from the model's start frame to the model's end - // frame at the model's window increment frames per pixel. We - // want to draw from our start frame + x0 * zoomLevel to our start - // frame + x1 * zoomLevel at zoomLevel frames per pixel. - - // We have quite different paint mechanisms for rendering "large" - // bins (more than one bin per pixel in both directions) and - // "small". This is "large"; see paintDense below for "small". - - int x0 = rect.left(); - int x1 = rect.right() + 1; - - int h = v->getPaintHeight(); - - double srRatio = - v->getViewManager()->getMainModelSampleRate() / m_model->getSampleRate(); - - // the s-prefix values are source, i.e. model, column and bin numbers - int sx0 = int((double(v->getFrameForX(x0)) / srRatio - double(modelStart)) - / modelResolution); - int sx1 = int((double(v->getFrameForX(x1)) / srRatio - double(modelStart)) - / modelResolution); - int sh = m_model->getHeight(); - - int symin = m_miny; - int symax = m_maxy; - if (symax <= symin) { - symin = 0; - symax = sh; - } - if (symin < 0) symin = 0; - if (symax > sh) symax = sh; - - if (sx0 > 0) --sx0; - fillCache(sx0 < 0 ? 0 : sx0, - sx1 < 0 ? 0 : sx1); - -#ifdef DEBUG_COLOUR_3D_PLOT_LAYER_PAINT - cerr << "Colour3DPlotLayer::paint: height = "<< m_model->getHeight() << ", modelStart = " << modelStart << ", resolution = " << modelResolution << ", model rate = " << m_model->getSampleRate() << " (zoom level = " << v->getZoomLevel() << ", srRatio = " << srRatio << ")" << endl; -#endif - - if (shouldPaintDenseIn(v)) { -#ifdef DEBUG_COLOUR_3D_PLOT_LAYER_PAINT - cerr << "calling paintDense" << endl; -#endif - paintDense(v, paint, rect); - return; - } - -#ifdef DEBUG_COLOUR_3D_PLOT_LAYER_PAINT - cerr << "Colour3DPlotLayer::paint: w " << x1-x0 << ", h " << h << ", sx0 " << sx0 << ", sx1 " << sx1 << ", sw " << sx1-sx0 << ", sh " << sh << endl; - cerr << "Colour3DPlotLayer: sample rate is " << m_model->getSampleRate() << ", resolution " << m_model->getResolution() << endl; -#endif - - QPoint illuminatePos; - bool illuminate = v->shouldIlluminateLocalFeatures(this, illuminatePos); - - const int buflen = 40; - char labelbuf[buflen]; - - for (int sx = sx0; sx <= sx1; ++sx) { - - sv_frame_t fx = sx * modelResolution + modelStart; - - if (fx + modelResolution <= modelStart || fx > modelEnd) continue; - - int rx0 = v->getXForFrame(int(double(fx) * srRatio)); - int rx1 = v->getXForFrame(int(double(fx + modelResolution + 1) * srRatio)); - - int rw = rx1 - rx0; - if (rw < 1) rw = 1; - - bool showLabel = (rw > 10 && - paint.fontMetrics().width("0.000000") < rw - 3 && - paint.fontMetrics().height() < (h / sh)); - - for (int sy = symin; sy < symax; ++sy) { - - int ry0 = getIYForBin(v, sy); - int ry1 = getIYForBin(v, sy + 1); - QRect r(rx0, ry1, rw, ry0 - ry1); - - QRgb pixel = qRgb(255, 255, 255); - if (sx >= 0 && sx < m_cache->width() && - sy >= 0 && sy < m_cache->height()) { - pixel = m_cache->pixel(sx, sy); - } - - if (rw == 1) { - paint.setPen(pixel); - paint.setBrush(Qt::NoBrush); - paint.drawLine(r.x(), r.y(), r.x(), r.y() + r.height() - 1); - continue; - } - - QColor pen(255, 255, 255, 80); - QColor brush(pixel); - - if (rw > 3 && r.height() > 3) { - brush.setAlpha(160); - } - - paint.setPen(Qt::NoPen); - paint.setBrush(brush); - - if (illuminate) { - if (r.contains(illuminatePos)) { - paint.setPen(v->getForeground()); - } - } - -#ifdef DEBUG_COLOUR_3D_PLOT_LAYER_PAINT -// cerr << "rect " << r.x() << "," << r.y() << " " -// << r.width() << "x" << r.height() << endl; -#endif - - paint.drawRect(r); - - if (showLabel) { - if (sx >= 0 && sx < m_cache->width() && - sy >= 0 && sy < m_cache->height()) { - double value = m_model->getValueAt(sx, sy); - snprintf(labelbuf, buflen, "%06f", value); - QString text(labelbuf); - PaintAssistant::drawVisibleText - (v, - paint, - rx0 + 2, - ry0 - h / sh - 1 + 2 + paint.fontMetrics().ascent(), - text, - PaintAssistant::OutlinedText); - } - } - } - } -} -*/ - - bool Colour3DPlotLayer::snapToFeatureFrame(LayerGeometryProvider *v, sv_frame_t &frame, int &resolution,