diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-06 14:00:25 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-06 14:23:31 +0200 |
commit | 811be6f81b2e8c4d9d23cff5b4287c8a5dc86fc3 (patch) | |
tree | 549f2a46531c853893e31083a12d3729d07c4a86 /tests/directional/scatterdatamodifier.cpp | |
parent | e91237b54c2f58eaa8a2ce36bf016e2d8e8588f2 (diff) |
Change rotations to use angle and vector in APIs
Quaternions are pain in the behind to use, especially
in QML, so change them to angle + vector combinations.
Change-Id: I25eb5ea92deaf3a079e2e193cce2e8de89f3c3c4
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests/directional/scatterdatamodifier.cpp')
-rw-r--r-- | tests/directional/scatterdatamodifier.cpp | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp index 96a7b975..3735e14c 100644 --- a/tests/directional/scatterdatamodifier.cpp +++ b/tests/directional/scatterdatamodifier.cpp @@ -32,7 +32,7 @@ const int numberOfCols = 8; const int numberOfRows = 8; const float limit = 8.0f; const float PI = 3.14159f; -//#define HEDGEHOG +#define HEDGEHOG ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) : m_graph(scatter), @@ -111,7 +111,8 @@ void ScatterDataModifier::addData() #endif ptrToDataArray->setPosition(QVector3D(x, y, z)); - ptrToDataArray->setRotation(rotation); + ptrToDataArray->setRotationAxis(rotation.vector()); + ptrToDataArray->setRotationAngle(qAcos(rotation.scalar()) * 360.0f / M_PI); ptrToDataArray++; } } @@ -172,15 +173,13 @@ 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); + item.setRotationAngle(item.rotationAngle() + 1); 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); + m_graph->seriesList().at(0)->setMeshRotationAxis(QVector3D(1.0f, 1.0f, 1.0f)); + m_graph->seriesList().at(0)->setMeshRotationAngle(seriesAngle++); } } } |