From b36b9eb7c65e3a4f6972d2f2145722470d1ad29b Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 25 Mar 2014 15:07:06 +0200 Subject: Implement QLogValue3DAxisFormatter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTRD-2787 Change-Id: I6ecff5c3d2047a2c566051951bf237bf3e68ffab Reviewed-by: Tomi Korpipää Reviewed-by: Mika Salmela Reviewed-by: Miikka Heikkinen --- .../engine/abstract3dcontroller.cpp | 50 +++++++++++----------- .../engine/abstract3drenderer.cpp | 1 + src/datavisualization/engine/axisrendercache_p.h | 8 ++-- src/datavisualization/engine/surface3drenderer.cpp | 1 + 4 files changed, 32 insertions(+), 28 deletions(-) (limited to 'src/datavisualization/engine') diff --git a/src/datavisualization/engine/abstract3dcontroller.cpp b/src/datavisualization/engine/abstract3dcontroller.cpp index a6c086aa..7f905243 100644 --- a/src/datavisualization/engine/abstract3dcontroller.cpp +++ b/src/datavisualization/engine/abstract3dcontroller.cpp @@ -183,6 +183,31 @@ void Abstract3DController::synchDataToRenderer() m_changeTracker.selectionModeChanged = false; } + if (m_changeTracker.axisXFormatterChanged) { + m_changeTracker.axisXFormatterChanged = false; + if (m_axisX->type() & QAbstract3DAxis::AxisTypeValue) { + QValue3DAxis *valueAxisX = static_cast(m_axisX); + m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationX, + valueAxisX->formatter()); + } + } + if (m_changeTracker.axisYFormatterChanged) { + m_changeTracker.axisYFormatterChanged = false; + if (m_axisY->type() & QAbstract3DAxis::AxisTypeValue) { + QValue3DAxis *valueAxisY = static_cast(m_axisY); + m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationY, + valueAxisY->formatter()); + } + } + if (m_changeTracker.axisZFormatterChanged) { + m_changeTracker.axisZFormatterChanged = false; + if (m_axisZ->type() & QAbstract3DAxis::AxisTypeValue) { + QValue3DAxis *valueAxisZ = static_cast(m_axisZ); + m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationZ, + valueAxisZ->formatter()); + } + } + if (m_changeTracker.axisXTypeChanged) { m_renderer->updateAxisType(QAbstract3DAxis::AxisOrientationX, m_axisX->type()); m_changeTracker.axisXTypeChanged = false; @@ -326,31 +351,6 @@ void Abstract3DController::synchDataToRenderer() } } - if (m_changeTracker.axisXFormatterChanged) { - m_changeTracker.axisXFormatterChanged = false; - if (m_axisX->type() & QAbstract3DAxis::AxisTypeValue) { - QValue3DAxis *valueAxisX = static_cast(m_axisX); - m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationX, - valueAxisX->formatter()); - } - } - if (m_changeTracker.axisYFormatterChanged) { - m_changeTracker.axisYFormatterChanged = false; - if (m_axisY->type() & QAbstract3DAxis::AxisTypeValue) { - QValue3DAxis *valueAxisY = static_cast(m_axisY); - m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationY, - valueAxisY->formatter()); - } - } - if (m_changeTracker.axisZFormatterChanged) { - m_changeTracker.axisZFormatterChanged = false; - if (m_axisZ->type() & QAbstract3DAxis::AxisTypeValue) { - QValue3DAxis *valueAxisZ = static_cast(m_axisZ); - m_renderer->updateAxisFormatter(QAbstract3DAxis::AxisOrientationZ, - valueAxisZ->formatter()); - } - } - if (m_isSeriesVisibilityDirty || m_isSeriesVisualsDirty) { m_renderer->updateSeries(m_seriesList, m_isSeriesVisibilityDirty); m_isSeriesVisibilityDirty = false; diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index c5e265aa..f0aec0cc 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -345,6 +345,7 @@ void Abstract3DRenderer::updateAxisFormatter(QAbstract3DAxis::AxisOrientation or cache.setCtrlFormatter(formatter); } formatter->d_ptr->populateCopy(*(cache.formatter())); + cache.markPositionsDirty(); } void Abstract3DRenderer::fixMeshFileName(QString &fileName, QAbstract3DSeries::Mesh mesh) diff --git a/src/datavisualization/engine/axisrendercache_p.h b/src/datavisualization/engine/axisrendercache_p.h index eede9917..f37857d9 100644 --- a/src/datavisualization/engine/axisrendercache_p.h +++ b/src/datavisualization/engine/axisrendercache_p.h @@ -33,6 +33,7 @@ #include "labelitem_p.h" #include "qabstract3daxis_p.h" #include "drawer_p.h" +#include QT_BEGIN_NAMESPACE_DATAVISUALIZATION @@ -66,11 +67,11 @@ public: m_formatter = formatter; m_positionsDirty = true; } inline QValue3DAxisFormatter *formatter() const { return m_formatter; } - inline void setCtrlFormatter(const QValue3DAxisFormatter *formatter) + inline void setCtrlFormatter(QValue3DAxisFormatter *formatter) { m_ctrlFormatter = formatter; } - inline const QValue3DAxisFormatter *ctrlFormatter() const { return m_ctrlFormatter; } + inline QValue3DAxisFormatter *ctrlFormatter() const { return m_ctrlFormatter; } inline LabelItem &titleItem() { return m_titleItem; } inline QList &labelItems() { return m_labelItems; } @@ -80,6 +81,7 @@ public: inline int labelCount() { return m_adjustedLabelPositions.size(); } void updateAllPositions(); inline bool positionsDirty() const { return m_positionsDirty; } + inline void markPositionsDirty() { m_positionsDirty = true; } inline void setTranslate(float translate) { m_translate = translate; m_positionsDirty = true; } inline float translate() { return m_translate; } inline void setScale(float scale) { m_scale = scale; m_positionsDirty = true; } @@ -106,7 +108,7 @@ private: QString m_labelFormat; QFont m_font; QValue3DAxisFormatter *m_formatter; - const QValue3DAxisFormatter *m_ctrlFormatter; + QPointer m_ctrlFormatter; // Renderer items Drawer *m_drawer; // Not owned diff --git a/src/datavisualization/engine/surface3drenderer.cpp b/src/datavisualization/engine/surface3drenderer.cpp index ed99e49e..9ce80081 100644 --- a/src/datavisualization/engine/surface3drenderer.cpp +++ b/src/datavisualization/engine/surface3drenderer.cpp @@ -900,6 +900,7 @@ void Surface3DRenderer::drawSlicedScene() // Vertical lines QVector3D gridLineScaleY(gridLineWidth, backgroundMargin, gridLineWidth); + gridLineCount = sliceCache.gridLineCount(); for (int line = 0; line < gridLineCount; line++) { QMatrix4x4 modelMatrix; QMatrix4x4 MVPMatrix; -- cgit v1.2.3