summaryrefslogtreecommitdiffstats
path: root/tests/directional/scatterdatamodifier.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-24 13:45:18 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-01-27 07:51:17 +0200
commit71b501d31ae7c5d3aab987b54acccecce1136896 (patch)
tree7898e60da146dadd8ed665b21d35960efa5f61fa /tests/directional/scatterdatamodifier.cpp
parent8178f10769f7f7d84d4d1180994d0232e5fc8f93 (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.cpp29
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);
+}