diff options
Diffstat (limited to 'src/datavisualization/engine/scatter3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/scatter3drenderer.cpp | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/src/datavisualization/engine/scatter3drenderer.cpp b/src/datavisualization/engine/scatter3drenderer.cpp index 449809c8..e87c1435 100644 --- a/src/datavisualization/engine/scatter3drenderer.cpp +++ b/src/datavisualization/engine/scatter3drenderer.cpp @@ -25,6 +25,7 @@ #include "texturehelper_p.h" #include "utils_p.h" #include "q3dlight.h" +#include "qscatter3dseries_p.h" #include <QMatrix4x4> #include <QMouseEvent> @@ -141,15 +142,14 @@ void Scatter3DRenderer::initializeOpenGL() loadBackgroundMesh(); } -//void Scatter3DRenderer::updateSeriesData(const QList<QAbstract3DSeries *> &seriesList) -void Scatter3DRenderer::updateSeriesData(QScatterDataProxy *dataProxy) +void Scatter3DRenderer::updateSeriesData(const QList<QAbstract3DSeries *> &seriesList) { - //QList<QScatter3DSeries *> visibleSeries; - //foreach (QAbstract3DSeries *current, seriesList) { - // if (current->isVisible()) - // visibleSeries.append(static_cast<QScatter3DSeries *>(current)); - //} - int seriesCount = 3;//visibleSeries.size(); // TODO: Use a number for testing until QTRD-2548 is done + QList<QScatter3DSeries *> visibleSeries; + foreach (QAbstract3DSeries *current, seriesList) { + if (current->isVisible()) + visibleSeries.append(static_cast<QScatter3DSeries *>(current)); + } + int seriesCount = visibleSeries.size(); calculateSceneScalingFactors(); float minX = float(m_axisCacheX.min()); float maxX = float(m_axisCacheX.max()); @@ -165,7 +165,7 @@ void Scatter3DRenderer::updateSeriesData(QScatterDataProxy *dataProxy) } for (int series = 0; series < m_seriesCount; series++) { - //QScatterDataProxy *dataProxy = visibleSeries.at(series)->dataProxy(); + QScatterDataProxy *dataProxy = visibleSeries.at(series)->dataProxy(); const QScatterDataArray &dataArray = *dataProxy->array(); int dataSize = dataArray.size(); totalDataSize += dataSize; @@ -179,9 +179,7 @@ void Scatter3DRenderer::updateSeriesData(QScatterDataProxy *dataProxy) if ((dotPos.x() >= minX && dotPos.x() <= maxX ) && (dotPos.y() >= minY && dotPos.y() <= maxY) && (dotPos.z() >= minZ && dotPos.z() <= maxZ)) { - //m_renderingArrays[series][i].setPosition(dotPos); - // TODO: Hack different values for sets until QTRD-2548 - m_renderingArrays[series][i].setPosition(dotPos * (1.0f - (series * 0.25f))); + m_renderingArrays[series][i].setPosition(dotPos); m_renderingArrays[series][i].setVisible(true); calculateTranslation(m_renderingArrays[series][i]); } else { @@ -192,8 +190,7 @@ void Scatter3DRenderer::updateSeriesData(QScatterDataProxy *dataProxy) m_dotSizeScale = (GLfloat)qBound(0.01, (2.0 / qSqrt((qreal)totalDataSize)), 0.1); m_selectedItem = 0; - Abstract3DRenderer::updateDataModel(dataProxy); - //Abstract3DRenderer::updateSeriesData(seriesList); + Abstract3DRenderer::updateSeriesData(seriesList); } void Scatter3DRenderer::updateScene(Q3DScene *scene) @@ -514,7 +511,6 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) glEnable(GL_DITHER); // Read color under cursor - // TODO: Can't call back to controller here! (QTRD-2216) QVector3D clickedColor = Utils::getSelection(m_inputPosition, m_cachedBoundingRect.height()); if (m_clickedColor == invalidColorVector) { @@ -585,7 +581,7 @@ void Scatter3DRenderer::drawScene(const GLuint defaultFboHandle) int dotNo = 0; for (int series = 0; series < m_seriesCount; series++) { - // TODO: Color per series. Let's just hack it while testing with 2 series + // TODO: Color per series. Let's just hack it while testing with 2 series QTRD-2557 QVector3D baseColor = Utils::vectorFromColor(m_cachedObjectColor) * (series + 0.25f); QVector3D dotColor = baseColor; |