void IncrementalPlot::appendPoint( const QPointF &point ) { CurveData *data = static_cast<CurveData *>( d_curve->data() ); data->append( point ); const bool doClip = !canvas()->testAttribute( Qt::WA_PaintOnScreen ); // if ( doClip ) // { // /* // Depending on the platform setting a clip might be an important // performance issue. F.e. for Qt Embedded this reduces the // part of the backing store that has to be copied out - maybe // to an unaccelerated frame buffer device. // */ // const QwtScaleMap xMap = canvasMap( d_curve->xAxis() ); // const QwtScaleMap yMap = canvasMap( d_curve->yAxis() ); // QRegion clipRegion; // const QSize symbolSize = d_curve->symbol()->size(); // QRect r( 0, 0, symbolSize.width() + 2, symbolSize.height() + 2 ); // const QPointF center = // QwtScaleMap::transform( xMap, yMap, point ); // r.moveCenter( center.toPoint() ); // clipRegion += r; // d_directPainter->setClipRegion( clipRegion ); // } d_directPainter->drawSeries( d_curve, data->size() - 1, data->size() - 1 ); }
void BrainPlot::appendPoint( QPointF point, int Channel ) { /*Adds new point - with proper index and offset - to the data series*/ CurveData *data = static_cast<CurveData *>( d_curves[Channel]->data() ); point.setY(minusExpectedAmplitude*(2*Channel+1)+point.y()); data->replace(sample%plotLength, point); setClipRegion(d_curves[Channel], point); d_directPainter->drawSeries( d_curves[Channel], data->size() - 1, data->size() - 1 ); }
void OscilloscopePlot::updateCurve() { CurveData *data = static_cast<CurveData *>( d_curve->data() ); data->values().lock(); const int numPoints = data->size(); if ( numPoints > d_paintedPoints ) { const bool doClip = !canvas()->testAttribute( Qt::WA_PaintOnScreen ); if ( doClip ) { /* Depending on the platform setting a clip might be an important performance issue. F.e. for Qt Embedded this reduces the part of the backing store that has to be copied out - maybe to an unaccelerated frame buffer device. */ const QwtScaleMap xMap = canvasMap( d_curve->xAxis() ); const QwtScaleMap yMap = canvasMap( d_curve->yAxis() ); QRectF br = qwtBoundingRect( *data, d_paintedPoints - 1, numPoints - 1 ); const QRect clipRect = QwtScaleMap::transform( xMap, yMap, br ).toRect(); d_directPainter->setClipRegion( clipRect ); } d_directPainter->drawSeries( d_curve, d_paintedPoints - 1, numPoints - 1 ); d_paintedPoints = numPoints; } data->values().unlock(); }
void OscilloscopePlot::replot() { CurveData *data = static_cast<CurveData *>( d_curve->data() ); data->values().lock(); QwtPlot::replot(); d_paintedPoints = data->size(); data->values().unlock(); }
void Plot::replot() { CurveData *data = (CurveData *)d_curve->data(); data->values().lock(); QwtPlot::replot(); d_paintedPoints = data->size(); data->values().unlock(); }
void Plot::appendPoint1(double u) { double elapsed = d_clock.elapsed() / 1000.0; qDebug() << "d_clock1: " << elapsed; qDebug() << "udouble1: " << u; QPointF point(elapsed,(u*5/1024)); CurveData *data = static_cast<CurveData *>( d_curve1->data() ); data->append(point); RecToFile1(elapsed,u); const int numPoints = data->size(); if ( numPoints > d_paintedPoints1 ) { const bool doClip = !canvas()->testAttribute( Qt::WA_PaintOnScreen ); if ( doClip ) { /* Depending on the platform setting a clip might be an important performance issue. F.e. for Qt Embedded this reduces the part of the backing store that has to be copied out - maybe to an unaccelerated frame buffer device. */ const QwtScaleMap xMap = canvasMap( d_curve1->xAxis() ); const QwtScaleMap yMap = canvasMap( d_curve1->yAxis() ); QRectF br = qwtBoundingRect( *data, d_paintedPoints1 - 1, numPoints - 1 ); const QRect clipRect = QwtScaleMap::transform( xMap, yMap, br ).toRect(); d_directPainter0->setClipRegion( clipRect ); } d_directPainter0->drawSeries(d_curve1, d_paintedPoints1 - 1, numPoints - 1); d_paintedPoints1 = numPoints; } }