diff options
author | Sami Varanka <sami.varanka@qt.io> | 2021-07-23 10:40:55 +0300 |
---|---|---|
committer | Sami Varanka <sami.varanka@qt.io> | 2021-08-03 10:37:10 +0300 |
commit | 55bd8fbf38d3eede7ae7cf0eed357117e9eeba98 (patch) | |
tree | 7bc086f5688291b7b535dd6f0c638f0cd6fc0357 | |
parent | 9028a9f2f846939891b1f233c47d6feddaf3a021 (diff) |
Fix: basegradient applied incorrectly to surface
When surface data contains NaN/Inf values,
the basegradient might get applied incorrectly.
Fixed the error by adding check for NaN/Inf in
getNormalizedVertex.
Pick-to: 6.1
Fixes: QTBUG-78767
Change-Id: I94d850f8ed21bc98dcbc4ba26b02989c1c1bf90b
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
-rw-r--r-- | src/datavisualization/utils/surfaceobject.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/datavisualization/utils/surfaceobject.cpp b/src/datavisualization/utils/surfaceobject.cpp index 6734ac86..7d73e700 100644 --- a/src/datavisualization/utils/surfaceobject.cpp +++ b/src/datavisualization/utils/surfaceobject.cpp @@ -870,7 +870,8 @@ void SurfaceObject::getNormalizedVertex(const QSurfaceDataItem &data, QVector3D } float normalizedY = m_axisCacheY.positionAt(data.y()); m_minY = qMin(normalizedY, m_minY); - m_maxY = qMax(normalizedY, m_maxY); + if (!qIsNaN(normalizedY) && !qIsInf(normalizedY)) + m_maxY = qMax(normalizedY, m_maxY); vertex.setX(normalizedX); vertex.setY(normalizedY); vertex.setZ(normalizedZ); |