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.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp
index 85863519..6a08c934 100644
--- a/src/datavisualization/engine/scatter3drenderer.cpp
+++ b/src/datavisualization/engine/scatter3drenderer.cpp
@@ -160,10 +160,15 @@ void Scatter3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis
float maxItemSize = 0.0f;
float itemSize = 0.0f;
+ if (m_cachedItemSize.size() != seriesCount)
+ m_cachedItemSize.resize(seriesCount);
+
for (int series = 0; series < seriesCount; series++) {
itemSize = static_cast<QScatter3DSeries *>(m_visibleSeriesList.at(series).series())->itemSize();
if (maxItemSize < itemSize)
maxItemSize = itemSize;
+ if (m_cachedItemSize.at(series) != itemSize)
+ m_cachedItemSize[series] = itemSize;
}
m_backgroundMargin = defaultMargin;
m_maxItemSize = maxItemSize;
@@ -364,10 +369,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle)
ObjectHelper *dotObj = m_visibleSeriesList.at(series).object();
bool drawingPoints = (m_visibleSeriesList.at(series).mesh() == QAbstract3DSeries::MeshPoint);
- // TODO: Accessing series directly during rendering
- float itemSize =
- static_cast<QScatter3DSeries *>(m_visibleSeriesList.at(series).series())->itemSize()
- / itemScaler;
+ float itemSize = m_cachedItemSize.at(series) / itemScaler;
if (itemSize == 0.0f)
itemSize = m_dotSizeScale;
if (drawingPoints) {