diff options
author | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-11-01 09:53:20 +0200 |
---|---|---|
committer | Tomi Korpipää <tomi.korpipaa@digia.com> | 2013-11-01 13:07:06 +0200 |
commit | 90ecf703af76a4dbca65d0150dcce48b73d40c58 (patch) | |
tree | 419f5547fec31f3f735d4d8a43b852ccd9c0be13 /src/datavisualization/engine/scatter3dcontroller.cpp | |
parent | b9da2b74fe6f29f602ad700554527018174761c9 (diff) |
Support for non-zero centered data in scatter
Task-number: QTRD-2311
Change-Id: I12a60b2d10dd6706d5303cdf127a54f05a819780
Change-Id: I12a60b2d10dd6706d5303cdf127a54f05a819780
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src/datavisualization/engine/scatter3dcontroller.cpp')
-rw-r--r-- | src/datavisualization/engine/scatter3dcontroller.cpp | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/datavisualization/engine/scatter3dcontroller.cpp b/src/datavisualization/engine/scatter3dcontroller.cpp index ca16a34b..1b865adc 100644 --- a/src/datavisualization/engine/scatter3dcontroller.cpp +++ b/src/datavisualization/engine/scatter3dcontroller.cpp @@ -241,30 +241,32 @@ int Scatter3DController::selectedItemIndex() const void Scatter3DController::adjustValueAxisRange() { + QVector3D minLimits; + QVector3D maxLimits; if (m_data) { - QVector3D limits = static_cast<QScatterDataProxy *>(m_data)->dptr()->limitValues(); + static_cast<QScatterDataProxy *>(m_data)->dptr()->limitValues(minLimits, maxLimits); Q3DValueAxis *valueAxis = static_cast<Q3DValueAxis *>(m_axisX); if (valueAxis && valueAxis->isAutoAdjustRange()) { - if (limits.x() > 0) - valueAxis->dptr()->setRange(-limits.x(), limits.x()); + if (minLimits.x() != maxLimits.x()) + valueAxis->dptr()->setRange(minLimits.x(), maxLimits.x()); else - valueAxis->dptr()->setRange(-1.0, 1.0); // Only zero value values in data set, set range to default. + valueAxis->dptr()->setRange(minLimits.x() - 1.0f, minLimits.x() + 1.0f); // Default to a valid range } valueAxis = static_cast<Q3DValueAxis *>(m_axisY); if (valueAxis && valueAxis->isAutoAdjustRange()) { - if (limits.y() > 0) - valueAxis->dptr()->setRange(-limits.y(), limits.y()); + if (minLimits.y() != maxLimits.y()) + valueAxis->dptr()->setRange(minLimits.y(), maxLimits.y()); else - valueAxis->dptr()->setRange(-1.0, 1.0); // Only zero value values in data set, set range to default. + valueAxis->dptr()->setRange(minLimits.y() - 1.0f, minLimits.y() + 1.0f); // Default to a valid range } valueAxis = static_cast<Q3DValueAxis *>(m_axisZ); if (valueAxis && valueAxis->isAutoAdjustRange()) { - if (limits.z() > 0) - valueAxis->dptr()->setRange(-limits.z(), limits.z()); + if (minLimits.z() != maxLimits.z()) + valueAxis->dptr()->setRange(minLimits.z(), maxLimits.z()); else - valueAxis->dptr()->setRange(-1.0, 1.0); // Only zero value values in data set, set range to default. + valueAxis->dptr()->setRange(minLimits.z() - 1.0f, minLimits.z() + 1.0f); // Default to a valid range } } } |