summaryrefslogtreecommitdiffstats
path: root/src/datavisualization/data/qscatterdataitem.cpp
diff options
context:
space:
mode:
authorMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-07 15:30:53 +0200
committerMiikka Heikkinen <miikka.heikkinen@digia.com>2014-02-10 08:25:28 +0200
commit61c84e2d9c46de40d22f6fafbdd23d4015025516 (patch)
tree13c04fa5a90e75d5730babd6ab1cefef54b54417 /src/datavisualization/data/qscatterdataitem.cpp
parentffc2e2039f58de256a98da395b5d0e87d5a176fc (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 'src/datavisualization/data/qscatterdataitem.cpp')
-rw-r--r--src/datavisualization/data/qscatterdataitem.cpp51
1 files changed, 13 insertions, 38 deletions
diff --git a/src/datavisualization/data/qscatterdataitem.cpp b/src/datavisualization/data/qscatterdataitem.cpp
index a3e7b12d..9751dfeb 100644
--- a/src/datavisualization/data/qscatterdataitem.cpp
+++ b/src/datavisualization/data/qscatterdataitem.cpp
@@ -37,9 +37,7 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION
* Constructs QScatterDataItem.
*/
QScatterDataItem::QScatterDataItem()
- : d_ptr(0), // private data doesn't exist by default (optimization)
- m_rotationAxis(upVector),
- m_rotationAngle(0.0f)
+ : d_ptr(0) // private data doesn't exist by default (optimization)
{
}
@@ -49,21 +47,17 @@ QScatterDataItem::QScatterDataItem()
*/
QScatterDataItem::QScatterDataItem(const QVector3D &position)
: d_ptr(0),
- m_position(position),
- m_rotationAxis(upVector),
- m_rotationAngle(0.0f)
+ m_position(position)
{
}
/*!
- * Constructs QScatterDataItem with \a position, \a rotationAxis and \a rotationAngle.
+ * Constructs QScatterDataItem with \a position and \a rotation.
*/
-QScatterDataItem::QScatterDataItem(const QVector3D &position, const QVector3D &rotationAxis,
- float rotationAngle)
+QScatterDataItem::QScatterDataItem(const QVector3D &position, const QQuaternion &rotation)
: d_ptr(0),
m_position(position),
- m_rotationAxis(rotationAxis),
- m_rotationAngle(rotationAngle)
+ m_rotation(rotation)
{
}
@@ -88,8 +82,7 @@ QScatterDataItem::~QScatterDataItem()
QScatterDataItem &QScatterDataItem::operator=(const QScatterDataItem &other)
{
m_position = other.m_position;
- m_rotationAxis = other.m_rotationAxis;
- m_rotationAngle = other.m_rotationAngle;
+ m_rotation = other.m_rotation;
if (other.d_ptr)
createExtraData();
@@ -110,35 +103,17 @@ QScatterDataItem &QScatterDataItem::operator=(const QScatterDataItem &other)
*/
/*!
- * \fn void QScatterDataItem::setRotationAxis(const QVector3D &axis)
- * Sets rotation \a axis of this data item.
- * If the series also has rotation, the resulting rotation quaternions
- * are multiplied together at render time.
- * Defaults to Y-axis.
- *
- * \sa setRotationAngle()
- */
-
-/*!
- * \fn QVector3D QScatterDataItem::rotationAxis() const
- * \return rotation axis of this data item.
- * \sa setRotationAxis(), setRotationAngle()
- */
-
-/*!
- * \fn void QScatterDataItem::setRotationAngle(float angle)
- * Sets rotation \a angle of this data item.
- * If the series also has rotation, the resulting rotation quaternions
- * are multiplied together at render time.
+ * \fn void QScatterDataItem::setRotation(const QQuaternion &rotation)
+ * Sets \a rotation to this data item.
+ * The \a rotation should be a normalized QQuaternion.
+ * If the series also has rotation, item and series rotations are multiplied together.
* Defaults to no rotation.
- *
- * \sa setRotationAxis()
*/
/*!
- * \fn float QScatterDataItem::rotationAngle() const
- * \return rotation angle of this data item.
- * \sa setRotationAxis(), setRotationAngle()
+ * \fn QQuaternion QScatterDataItem::rotation() const
+ * \return rotation of this data item.
+ * \sa setRotation()
*/
/*!