diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-07 15:30:53 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2014-02-10 08:25:28 +0200 |
commit | 61c84e2d9c46de40d22f6fafbdd23d4015025516 (patch) | |
tree | 13c04fa5a90e75d5730babd6ab1cefef54b54417 /tests/directional/scatterdatamodifier.cpp | |
parent | ffc2e2039f58de256a98da395b5d0e87d5a176fc (diff) |
Mostly revert the rotations refactor
Quaternions are actually easier to use in most use cases.
Added some convenience functionality for QML to enable using
axis/angle combinations, too.
Change-Id: I61c76e0967b4808aa9adaf43dfe6f4596c9ce353
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'tests/directional/scatterdatamodifier.cpp')
-rw-r--r-- | tests/directional/scatterdatamodifier.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp index 3735e14c..1422cebb 100644 --- a/tests/directional/scatterdatamodifier.cpp +++ b/tests/directional/scatterdatamodifier.cpp @@ -111,8 +111,7 @@ void ScatterDataModifier::addData() #endif ptrToDataArray->setPosition(QVector3D(x, y, z)); - ptrToDataArray->setRotationAxis(rotation.vector()); - ptrToDataArray->setRotationAngle(qAcos(rotation.scalar()) * 360.0f / M_PI); + ptrToDataArray->setRotation(rotation); ptrToDataArray++; } } @@ -173,13 +172,15 @@ 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))); - item.setRotationAngle(item.rotationAngle() + 1); + 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; - m_graph->seriesList().at(0)->setMeshRotationAxis(QVector3D(1.0f, 1.0f, 1.0f)); - m_graph->seriesList().at(0)->setMeshRotationAngle(seriesAngle++); + QQuaternion rotation = QQuaternion::fromAxisAndAngle(1.0f, 1.0f, 1.0f, seriesAngle++); + m_graph->seriesList().at(0)->setMeshRotation(rotation); } } } |