summaryrefslogtreecommitdiffstats
path: root/tests/directional/scatterdatamodifier.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-06 14:00:25 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-06 14:23:31 +0200
commit811be6f81b2e8c4d9d23cff5b4287c8a5dc86fc3 (patch)
tree549f2a46531c853893e31083a12d3729d07c4a86 /tests/directional/scatterdatamodifier.cpp
parente91237b54c2f58eaa8a2ce36bf016e2d8e8588f2 (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.cpp13
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++);
}
}
}