summaryrefslogtreecommitdiffstats
path: root/src/core/transforms/qtransform.cpp
diff options
context:
space:
mode:
authorKonstantin Ritt <ritt.ks@gmail.com>2015-03-15 22:25:25 +0400
committerKonstantin Ritt <ritt.ks@gmail.com>2015-03-16 14:22:20 +0000
commit8139a719293d12ca492ccb2b376da818856c189c (patch)
treef7f4507b520402020113feea797b18a5e9dd07b7 /src/core/transforms/qtransform.cpp
parentc9428e47d5d9300fe8daac03f27f813d7825d8b0 (diff)
[QTransform] Get rid of dead code and bogus includes
Also move some code around to simplify forthcoming patches. Change-Id: I300955af323baf97ab0f9a9e3a890013ad31814d Reviewed-by: Paul Lemire <paul.lemire@kdab.com>
Diffstat (limited to 'src/core/transforms/qtransform.cpp')
-rw-r--r--src/core/transforms/qtransform.cpp82
1 files changed, 30 insertions, 52 deletions
diff --git a/src/core/transforms/qtransform.cpp b/src/core/transforms/qtransform.cpp
index d594998c7..6ac1403b9 100644
--- a/src/core/transforms/qtransform.cpp
+++ b/src/core/transforms/qtransform.cpp
@@ -39,30 +39,36 @@
#include "qabstracttransform_p.h"
#include <Qt3DCore/qscenepropertychange.h>
-#include <qmatrixtransform.h>
QT_BEGIN_NAMESPACE
namespace Qt3D {
QTransformPrivate::QTransformPrivate(QTransform *qq)
- : QComponentPrivate(qq)
- , m_transformsDirty(false)
- , m_transforms()
- , m_matrix()
- , m_sceneMatrix()
+ : QComponentPrivate(qq),
+ m_transformsDirty(false)
{
}
-void QTransform::copy(const QNode *ref)
+void QTransformPrivate::_q_update()
{
- QComponent::copy(ref);
- const QTransform *transform = static_cast<const QTransform*>(ref);
- d_func()->m_matrix = transform->d_func()->m_matrix;
- Q_FOREACH (QAbstractTransform *t, transform->d_func()->m_transforms)
- addTransform(qobject_cast<QAbstractTransform *>(QNode::clone(t)));
+ if (!m_transformsDirty)
+ m_transformsDirty = true;
+ emit q_func()->matrixChanged();
+}
+
+QMatrix4x4 QTransformPrivate::applyTransforms() const
+{
+ if (!m_transforms.isEmpty()) {
+ QMatrix4x4 matrix;
+ Q_FOREACH (const QAbstractTransform *t, m_transforms)
+ matrix = t->transformMatrix() * matrix;
+ return matrix;
+ }
+ return QMatrix4x4();
}
+
QTransform::QTransform(QNode *parent)
: Qt3D::QComponent(*new QTransformPrivate(this), parent)
{
@@ -86,37 +92,13 @@ QTransform::QTransform(QTransformPrivate &dd, QNode *parent)
{
}
-void QTransformPrivate::_q_update()
-{
- if (!m_transformsDirty)
- m_transformsDirty = true;
- emit static_cast<QTransform *>(q_ptr)->matrixChanged();
-}
-
-QMatrix4x4 QTransformPrivate::applyTransforms() const
-{
- QMatrix4x4 m;
- Q_FOREACH (const QAbstractTransform *t, m_transforms)
- m = t->transformMatrix() * m;
- return m;
-}
-
-QMatrix4x4 QTransform::matrix() const
-{
- Q_D(const QTransform);
- if (d->m_transformsDirty) {
- d->m_matrix = d->applyTransforms();
- d->m_transformsDirty = false;
- }
- return d->m_matrix;
-}
-
-/*!
- The center of rotation for the entity. Defaults to the local origin.
-*/
-QVector3D QTransform::rotationCenter() const
+void QTransform::copy(const QNode *ref)
{
- return QVector3D();
+ QComponent::copy(ref);
+ const QTransform *transform = static_cast<const QTransform *>(ref);
+ d_func()->m_matrix = transform->d_func()->m_matrix;
+ Q_FOREACH (QAbstractTransform *t, transform->d_func()->m_transforms)
+ addTransform(qobject_cast<QAbstractTransform *>(QNode::clone(t)));
}
QList<QAbstractTransform *> QTransform::transforms() const
@@ -125,14 +107,6 @@ QList<QAbstractTransform *> QTransform::transforms() const
return d->m_transforms;
}
-/*!
- * The center of rotation for the entity. Defaults to the local origin.
- */
-void QTransform::setRotationCenter(const QVector3D &rc)
-{
- Q_UNUSED(rc);
-}
-
void QTransform::addTransform(QAbstractTransform *transform)
{
Q_D(QTransform);
@@ -149,10 +123,14 @@ void QTransform::removeTransform(QAbstractTransform *transform)
d->_q_update();
}
-QList<QAbstractTransform *> QTransform::transformList() const
+QMatrix4x4 QTransform::matrix() const
{
Q_D(const QTransform);
- return d->m_transforms;
+ if (d->m_transformsDirty) {
+ d->m_matrix = d->applyTransforms();
+ d->m_transformsDirty = false;
+ }
+ return d->m_matrix;
}
} // namespace Qt3D