diff options
Diffstat (limited to 'clients/tde/src/widgets/tracewidget.cpp')
| -rw-r--r-- | clients/tde/src/widgets/tracewidget.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/clients/tde/src/widgets/tracewidget.cpp b/clients/tde/src/widgets/tracewidget.cpp index 08cfe42..1d5440c 100644 --- a/clients/tde/src/widgets/tracewidget.cpp +++ b/clients/tde/src/widgets/tracewidget.cpp @@ -695,6 +695,15 @@ void TraceData::drawTrace(TQPainter* p, int graticule_width, int graticule_heigh activeSamples = abs(rightEdgeIndex-leftEdgeIndex); incr = (activeSamples/virtual_width)+1; for (n=leftEdgeIndex; n<numberOfSamples-incr; n=n+incr) { + // Detect invalid samples and skip drawing of those samples + // This avoids ugly drawing artifacts when not all sample data is available + if ( isnan(positionArray[n]) || isinf(positionArray[n]) + || isnan(positionArray[n+incr]) || isinf(positionArray[n+incr]) + || isnan(sampleArray[n]) || isinf(sampleArray[n]) + || isnan(sampleArray[n+incr]) || isinf(sampleArray[n+incr])) { + continue; + } + x = (((positionArray[n]-leftEdge)/(rightEdge-leftEdge))*(virtual_width))-horizoffset; y = ((((sampleArray[n]+offset)-topEdge)/(bottomEdge-topEdge))*(virtual_height)); x2 = (((positionArray[n+incr]-leftEdge)/(rightEdge-leftEdge))*(virtual_width))-horizoffset; |
