summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSami Varanka <sami.varanka@qt.io>2021-07-23 10:40:55 +0300
committerSami Varanka <sami.varanka@qt.io>2021-08-03 10:37:10 +0300
commit55bd8fbf38d3eede7ae7cf0eed357117e9eeba98 (patch)
tree7bc086f5688291b7b535dd6f0c638f0cd6fc0357 /src
parent9028a9f2f846939891b1f233c47d6feddaf3a021 (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>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualization/utils/surfaceobject.cpp3
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);