/**************************************************************************** ** ** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** ** This file is part of the QtDataVisualization module. ** ** Licensees holding valid Qt Enterprise licenses may use this file in ** accordance with the Qt Enterprise License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Digia. ** ** If you have questions regarding the use of this file, please use ** contact form at http://qt.digia.com ** ****************************************************************************/ #include "utils_p.h" #include QT_BEGIN_NAMESPACE_DATAVISUALIZATION #define NUM_IN_POWER(y, x) for (;y max) { value = min + (value - max); // In case single wrap fails, jump to opposite end. if (value > max) value = min; } if (value < min) { value = max + (value - min); // In case single wrap fails, jump to opposite end. if (value < min) value = 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