diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-12-12 15:02:07 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-12-13 08:18:01 +0200 |
commit | 132502c16e8ccb6d6fc627e2b5f6f89838d88c8e (patch) | |
tree | 03ffd9e3721f435f99ec30cb90b4b77523076aea /src/datavisualization/engine/surface3drenderer.cpp | |
parent | be2532151087d48802836bea0cb5a5658cf3492a (diff) |
Control for surface visibility features
Task-number: QTRD-2628
Change-Id: Ic03e2a71231665c478a918044ebd3e5b2d22b445
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/surface3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/surface3drenderer.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index 47e3bf08..43815d39 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -206,12 +206,9 @@ void Surface3DRenderer::updateData() const QSurfaceDataArray *array = 0; if (m_visibleSeriesList.size()) { QSurface3DSeries *firstSeries = static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series()); - m_cachedSurfaceVisible = firstSeries->isVisible(); // TODO: To series visuals update? - if (m_cachedSurfaceGridOn || m_cachedSurfaceVisible) { - QSurfaceDataProxy *dataProxy = firstSeries->dataProxy(); - if (dataProxy) - array = dataProxy->array(); - } + QSurfaceDataProxy *dataProxy = firstSeries->dataProxy(); + if (dataProxy) + array = dataProxy->array(); } calculateSceneScalingFactors(); @@ -264,6 +261,9 @@ void Surface3DRenderer::updateData() delete m_dataArray.at(i); m_dataArray.clear(); m_sampleSpace = QRect(); + + delete m_surfaceObj; + m_surfaceObj = 0; } for (int i = 0; i < m_sliceDataArray.size(); i++) @@ -282,7 +282,11 @@ void Surface3DRenderer::updateSeries(const QList<QAbstract3DSeries *> &seriesLis if (m_visibleSeriesList.size()) { QSurface3DSeries *series = static_cast<QSurface3DSeries *>(m_visibleSeriesList.at(0).series()); updateFlatStatus(series->isFlatShadingEnabled()); - updateSurfaceGridStatus(series->isSurfaceGridEnabled()); + + QSurface3DSeries::DrawFlags drawMode = series->drawMode(); + m_cachedSurfaceVisible = drawMode.testFlag(QSurface3DSeries::DrawSurface); + m_cachedSurfaceGridOn = drawMode.testFlag(QSurface3DSeries::DrawWireframe); + QVector3D seriesColor = Utils::vectorFromColor(series->baseColor()); if (m_uniformGradientTextureColor != seriesColor) generateUniformGradient(seriesColor); |