summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/engine
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-25 15:07:06 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-03-26 12:25:18 +0200
commitb36b9eb7c65e3a4f6972d2f2145722470d1ad29b (patch)
tree1d2225a3a107d0a786482c57dab8c50177a16149 /src/datavisualization/engine
parentb16a964d0ed24b720e4e71da03cea87e35db7806 (diff)
Implement QLogValue3DAxisFormatter
Task-number: QTRD-2787 Change-Id: I6ecff5c3d2047a2c566051951bf237bf3e68ffab Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com> Reviewed-by: Mika Salmela <mika.salmela@digia.com> Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine')
-rw-r--r--src/datavisualization/engine/abstract3dcontroller.cpp50
-rw-r--r--src/datavisualization/engine/abstract3drenderer.cpp1
-rw-r--r--src/datavisualization/engine/axisrendercache_p.h8
-rw-r--r--src/datavisualization/engine/surface3drenderer.cpp1
4 files changed, 32 insertions, 28 deletions
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<QValue3DAxis *>(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<QValue3DAxis *>(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<QValue3DAxis *>(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<QValue3DAxis *>(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<QValue3DAxis *>(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<QValue3DAxis *>(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 <QtCore/QPointer>
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<LabelItem *> &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<QValue3DAxisFormatter> 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;