summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/utils
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-05-19 12:57:20 +0300
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-05-19 13:09:05 +0300
commit0c1389258e8c3bdb7ccd2ae55959e4e99a460970 (patch)
tree1002218975189205c5eb94152e541268f41fb346 /src/datavisualization/utils
parent806fd8ab43dd59da89d04651b22c5c0440032b94 (diff)
Optimize label rotations a bit
Change-Id: Ie6075aefa70228769d5a2717e9d96c23b9fee494 Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/utils')
-rw-r--r--src/datavisualization/utils/utils.cpp9
-rw-r--r--src/datavisualization/utils/utils_p.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/src/datavisualization/utils/utils.cpp b/src/datavisualization/utils/utils.cpp
index b00d1251..7343148d 100644
--- a/src/datavisualization/utils/utils.cpp
+++ b/src/datavisualization/utils/utils.cpp
@@ -234,4 +234,13 @@ float Utils::wrapValue(float value, float min, float max)
return value;
}
+QQuaternion Utils::calculateRotation(const QVector3D &xyzRotations)
+{
+ QQuaternion rotQuatX = QQuaternion::fromAxisAndAngle(1.0f, 0.0f, 0.0f, xyzRotations.x());
+ QQuaternion rotQuatY = QQuaternion::fromAxisAndAngle(0.0f, 1.0f, 0.0f, xyzRotations.y());
+ QQuaternion rotQuatZ = QQuaternion::fromAxisAndAngle(0.0f, 0.0f, 1.0f, xyzRotations.z());
+ QQuaternion totalRotation = rotQuatY * rotQuatZ * rotQuatX;
+ return totalRotation;
+}
+
QT_END_NAMESPACE_DATAVISUALIZATION
diff --git a/src/datavisualization/utils/utils_p.h b/src/datavisualization/utils/utils_p.h
index 46df980f..a7c73731 100644
--- a/src/datavisualization/utils/utils_p.h
+++ b/src/datavisualization/utils/utils_p.h
@@ -72,6 +72,7 @@ public:
static QString defaultLabelFormat();
static float wrapValue(float value, float min, float max);
+ static QQuaternion calculateRotation(const QVector3D &xyzRotations);
private:
static ParamType mapFormatCharToParamType(const QChar &formatChar);