Files
GoldenCheetah/contrib/qtsolutions/qwtcurve/qwt_plot_gapped_curve.cpp
Mark Liversedge e1ac00b860 Move contributed sources to contrib directory
.. Makes it easier to identify code that has been snaffled in from
   other repositories and check licensing

.. The httpserver is now no longer optional, since it is delivered
   as contributed source.
2021-05-16 10:33:09 +01:00

60 lines
1.8 KiB
C++

#include "qwt_plot_gapped_curve.h"
////////////////////////////////////////////////////////////////////////////////
QwtPlotGappedCurve::QwtPlotGappedCurve(double gapValue)
: QwtPlotCurve(),
gapValue_(gapValue), naValue_(0)
{
}
////////////////////////////////////////////////////////////////////////////////
QwtPlotGappedCurve::QwtPlotGappedCurve(const QwtText &title, double gapValue)
: QwtPlotCurve(title),
gapValue_(gapValue), naValue_(0)
{
}
////////////////////////////////////////////////////////////////////////////////
QwtPlotGappedCurve::QwtPlotGappedCurve(const QString &title, double gapValue)
: QwtPlotCurve(title),
gapValue_(gapValue) , naValue_(0)
{
}
////////////////////////////////////////////////////////////////////////////////
void QwtPlotGappedCurve::drawSeries(QPainter *painter, const QwtScaleMap &xMap,
const QwtScaleMap &yMap, const QRectF &canvRect, int from, int to) const
{
if ( !painter || dataSize() <= 0 )
return;
if (to < 0)
to = dataSize();
int i = from;
double last = 0;
while (i < to)
{
// First non-missed point will be the start of curve section.
double x = sample(i).x();
double y = sample(i).y();
double yprev = 0;
if (i>0) yprev = sample(i-1).y();
if ((y < (naValue_ + -0.001) || y > (naValue_ + 0.001)) && (x - last <= gapValue_) &&
(yprev < (naValue_ + -0.001) || yprev > (naValue_ + 0.001))) {
int start = i-1;
int end = i;
// Draw the curve section
QwtPlotCurve::drawSeries(painter, xMap, yMap, canvRect, start, end);
}
last = x;
i++;
}
}
////////////////////////////////////////////////////////////////////////////////