diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-24 13:45:18 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-01-27 07:51:17 +0200 |
commit | 71b501d31ae7c5d3aab987b54acccecce1136896 (patch) | |
tree | 7898e60da146dadd8ed665b21d35960efa5f61fa /tests/directional/scatterdatamodifier.cpp | |
parent | 8178f10769f7f7d84d4d1180994d0232e5fc8f93 (diff) |
Added series rotation and bar item rotation support
Task-number: QTRD-2654
Change-Id: I864d33bc173b35b8680eddb402bdf1817ecb031f
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests/directional/scatterdatamodifier.cpp')
-rw-r--r-- | tests/directional/scatterdatamodifier.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp index f7089ae4..5da48483 100644 --- a/tests/directional/scatterdatamodifier.cpp +++ b/tests/directional/scatterdatamodifier.cpp @@ -56,6 +56,9 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) series->setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel"); m_graph->addSeries(series); + QObject::connect(&m_rotationTimer, &QTimer::timeout, this, + &ScatterDataModifier::triggerRotation); + addData(); } @@ -164,6 +167,24 @@ void ScatterDataModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQ emit shadowQualityChanged(quality); // connected to a checkbox in main.cpp } +void ScatterDataModifier::triggerRotation() +{ + if (m_graph->seriesList().size()) { + int selectedIndex = m_graph->seriesList().at(0)->selectedItem(); + if (selectedIndex != QScatter3DSeries::invalidSelectionIndex()) { + static float itemAngle = 0.0f; + QScatterDataItem item(*(m_graph->seriesList().at(0)->dataProxy()->itemAt(selectedIndex))); + QQuaternion itemRotation = QQuaternion::fromAxisAndAngle(0.0f, 0.0f, 1.0f, itemAngle++); + item.setRotation(itemRotation); + m_graph->seriesList().at(0)->dataProxy()->setItem(selectedIndex, item); + } else { + static float seriesAngle = 0.0f; + QQuaternion rotation = QQuaternion::fromAxisAndAngle(1.0f, 1.0f, 1.0f, seriesAngle++); + m_graph->seriesList().at(0)->setMeshRotation(rotation); + } + } +} + void ScatterDataModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); @@ -179,3 +200,11 @@ void ScatterDataModifier::setGridEnabled(int enabled) { m_graph->activeTheme()->setGridEnabled((bool)enabled); } + +void ScatterDataModifier::toggleRotation() +{ + if (m_rotationTimer.isActive()) + m_rotationTimer.stop(); + else + m_rotationTimer.start(20); +} |