summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine/scatter3drenderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer.cpp')
-rw-r--r--src/datavisualization/engine/scatter3drenderer.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 0a670fe8..ca983dac 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -745,7 +745,6 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
}
float rangeGradientYScaler = 0.5f / m_scaleY;
- float rangeGradientYScalerForPoints = rangeGradientYScaler * 100.0f;
foreach (SeriesRenderCache *baseCache, m_renderCacheList) {
if (baseCache->isVisible()) {
@@ -771,6 +770,8 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
glPointSize(itemSize * activeCamera->zoomLevel()); // Scale points based on zoom
#endif
QVector3D modelScaler(itemSize, itemSize, itemSize);
+ int gradientImageHeight = cache->gradientImage().height();
+ int maxGradientPositition = gradientImageHeight - 1;
if (!optimizationDefault
&& ((drawingPoints && cache->bufferPoints()->indexCount() == 0)
@@ -848,8 +849,8 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
if (rangeGradientPoints) {
// Drawing points with range gradient
// Get color from gradient based on items y position converted to percent
- int position = int(item.translation().y() * rangeGradientYScalerForPoints)
- + 50;
+ int position = ((item.translation().y() + m_scaleY) * rangeGradientYScaler) * gradientImageHeight;
+ position = qMin(maxGradientPositition, position); // clamp to edge
dotColor = Utils::vectorFromColor(
cache->gradientImage().pixel(0, position));
} else {