From 0de21b382c039d6094a65d225d34185a821b583b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Thu, 22 May 2014 10:09:03 +0300 Subject: Update custom item translation when axes change, if needed Task-number: QTRD-3129 Change-Id: If7e28778ca7fd628159d37ee74ae2afb8d941e53 Change-Id: If7e28778ca7fd628159d37ee74ae2afb8d941e53 Reviewed-by: Miikka Heikkinen --- src/datavisualization/engine/abstract3drenderer.cpp | 16 ++++++++++++++++ src/datavisualization/engine/abstract3drenderer_p.h | 1 + 2 files changed, 17 insertions(+) (limited to 'src/datavisualization/engine') diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index 8c2e9578..da839e2d 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -320,6 +320,8 @@ void Abstract3DRenderer::updateAxisRange(QAbstract3DAxis::AxisOrientation orient foreach (SeriesRenderCache *cache, m_renderCacheList) cache->setDataDirty(true); + + updateCustomItemPositions(); } void Abstract3DRenderer::updateAxisSegmentCount(QAbstract3DAxis::AxisOrientation orientation, @@ -348,6 +350,8 @@ void Abstract3DRenderer::updateAxisReversed(QAbstract3DAxis::AxisOrientation ori axisCacheForOrientation(orientation).setReversed(enable); foreach (SeriesRenderCache *cache, m_renderCacheList) cache->setDataDirty(true); + + updateCustomItemPositions(); } void Abstract3DRenderer::updateAxisFormatter(QAbstract3DAxis::AxisOrientation orientation, @@ -364,6 +368,8 @@ void Abstract3DRenderer::updateAxisFormatter(QAbstract3DAxis::AxisOrientation or foreach (SeriesRenderCache *cache, m_renderCacheList) cache->setDataDirty(true); + + updateCustomItemPositions(); } void Abstract3DRenderer::updateAxisLabelAutoRotation(QAbstract3DAxis::AxisOrientation orientation, @@ -635,6 +641,16 @@ void Abstract3DRenderer::updateCustomItem(CustomRenderItem *renderItem) } } +void Abstract3DRenderer::updateCustomItemPositions() +{ + foreach (CustomRenderItem *renderItem, m_customRenderCache) { + if (!renderItem->isPositionAbsolute()) { + QVector3D translation = convertPositionToTranslation(renderItem->position(), false); + renderItem->setTranslation(translation); + } + } +} + void Abstract3DRenderer::drawCustomItems(RenderingState state, ShaderHelper *shader, const QMatrix4x4 &viewMatrix, diff --git a/src/datavisualization/engine/abstract3drenderer_p.h b/src/datavisualization/engine/abstract3drenderer_p.h index f5bf0ff4..4a6ee545 100644 --- a/src/datavisualization/engine/abstract3drenderer_p.h +++ b/src/datavisualization/engine/abstract3drenderer_p.h @@ -69,6 +69,7 @@ public: virtual void updateSeries(const QList &seriesList); virtual void updateCustomData(const QList &customItems); virtual void updateCustomItems(); + virtual void updateCustomItemPositions(); virtual SeriesRenderCache *createNewCache(QAbstract3DSeries *series); virtual void cleanCache(SeriesRenderCache *cache); virtual void render(GLuint defaultFboHandle); -- cgit v1.2.3