summaryrefslogtreecommitdiffstats
path: root/src/core/transforms
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/transforms')
-rw-r--r--src/core/transforms/qtransform.cpp72
-rw-r--r--src/core/transforms/qtransform.h16
-rw-r--r--src/core/transforms/qtransform_p.h14
3 files changed, 5 insertions, 97 deletions
diff --git a/src/core/transforms/qtransform.cpp b/src/core/transforms/qtransform.cpp
index 0ca9f61de..2e177e3b2 100644
--- a/src/core/transforms/qtransform.cpp
+++ b/src/core/transforms/qtransform.cpp
@@ -51,56 +51,18 @@ namespace Qt3DCore {
*/
QTransformPrivate::QTransformPrivate()
: QComponentPrivate()
- , m_transformsDirty(false)
, m_rotation()
, m_scale(1.0f, 1.0f, 1.0f)
, m_translation()
+ , m_matrixDirty(false)
{
}
-void QTransformPrivate::_q_transformDestroyed(QObject *obj)
-{
- QAbstractTransform *transform = static_cast<QAbstractTransform *>(obj);
- if (m_transforms.removeOne(transform)) {
- emit q_func()->transformsChanged();
- _q_update();
- }
-}
-
-void QTransformPrivate::_q_update()
-{
- if (!m_transformsDirty)
- m_transformsDirty = true;
- emit q_func()->matrixChanged();
-}
-
-QMatrix4x4 QTransformPrivate::applyTransforms() const
-{
- QMatrix4x4 matrix;
- Q_FOREACH (const QAbstractTransform *t, m_transforms)
- matrix = t->transformMatrix() * matrix;
- return matrix;
-}
-
-
QTransform::QTransform(QNode *parent)
: QComponent(*new QTransformPrivate, parent)
{
}
-QTransform::QTransform(QList<QAbstractTransform *> transforms, QNode *parent)
- : QComponent(*new QTransformPrivate, parent)
-{
- Q_FOREACH (QAbstractTransform *t, transforms)
- addTransform(t);
-}
-
-QTransform::QTransform(QAbstractTransform *transform, QNode *parent)
- : QComponent(*new QTransformPrivate, parent)
-{
- addTransform(transform);
-}
-
/*! \internal */
QTransform::QTransform(QTransformPrivate &dd, QNode *parent)
: QComponent(dd, parent)
@@ -110,9 +72,6 @@ QTransform::QTransform(QTransformPrivate &dd, QNode *parent)
QTransform::~QTransform()
{
QNode::cleanup();
- Q_D(QTransform);
- // boost destruction by avoiding _q_update()-s
- d->m_transforms.clear();
}
void QTransform::copy(const QNode *ref)
@@ -127,35 +86,6 @@ void QTransform::copy(const QNode *ref)
d_func()->m_translation = transform->translation();
}
-QList<QAbstractTransform *> QTransform::transforms() const
-{
- Q_D(const QTransform);
- return d->m_transforms;
-}
-
-void QTransform::addTransform(QAbstractTransform *transform)
-{
- Q_D(QTransform);
- if (transform == Q_NULLPTR || d->m_transforms.contains(transform))
- return;
- d->m_transforms.append(transform);
- QObject::connect(transform, SIGNAL(transformMatrixChanged()), this, SLOT(_q_update()));
- QObject::connect(transform, SIGNAL(destroyed(QObject*)), this, SLOT(_q_transformDestroyed(QObject*)));
- emit transformsChanged();
- d->_q_update();
-}
-
-void QTransform::removeTransform(QAbstractTransform *transform)
-{
- Q_D(QTransform);
- if (!d->m_transforms.removeOne(transform))
- return;
- QObject::disconnect(transform, SIGNAL(transformMatrixChanged()), this, SLOT(_q_update()));
- QObject::disconnect(transform, SIGNAL(destroyed(QObject*)), this, SLOT(_q_transformDestroyed(QObject*)));
- emit transformsChanged();
- d->_q_update();
-}
-
void QTransform::setMatrix(const QMatrix4x4 &m)
{
Q_D(QTransform);
diff --git a/src/core/transforms/qtransform.h b/src/core/transforms/qtransform.h
index 7a08d272e..80d680b7e 100644
--- a/src/core/transforms/qtransform.h
+++ b/src/core/transforms/qtransform.h
@@ -47,8 +47,6 @@ QT_BEGIN_NAMESPACE
namespace Qt3DCore {
-class QAbstractTransform;
-
class QTransformPrivate;
class QT3DCORESHARED_EXPORT QTransform : public QComponent
{
@@ -61,8 +59,6 @@ class QT3DCORESHARED_EXPORT QTransform : public QComponent
public:
explicit QTransform(QNode *parent = 0);
- QTransform(QList<QAbstractTransform *> transforms, QNode *parent = 0);
- QTransform(QAbstractTransform *transform, QNode *parent = 0);
~QTransform();
float scale() const;
@@ -84,27 +80,19 @@ public:
QMatrix4x4 matrix() const;
- QList<QAbstractTransform *> transforms() const;
- void addTransform(QAbstractTransform *xform);
- void removeTransform(QAbstractTransform *xform);
-
-
public Q_SLOTS:
void setScale(float scale);
void setScale3D(const QVector3D &scale);
void setRotation(const QQuaternion &rotation);
void setTranslation(const QVector3D &translation);
-
void setMatrix(const QMatrix4x4 &matrix);
Q_SIGNALS:
- void matrixChanged();
- void transformsChanged();
-
void scaleChanged();
void scale3DChanged();
void rotationChanged();
void translationChanged();
+ void matrixChanged();
protected:
QTransform(QTransformPrivate &dd, QNode *parent = 0);
@@ -113,8 +101,6 @@ protected:
private:
Q_DECLARE_PRIVATE(QTransform)
QT3D_CLONEABLE(QTransform)
- Q_PRIVATE_SLOT(d_func(), void _q_transformDestroyed(QObject *obj))
- Q_PRIVATE_SLOT(d_func(), void _q_update())
};
} // namespace Qt3DCore
diff --git a/src/core/transforms/qtransform_p.h b/src/core/transforms/qtransform_p.h
index 523842d6e..1d98d901e 100644
--- a/src/core/transforms/qtransform_p.h
+++ b/src/core/transforms/qtransform_p.h
@@ -54,7 +54,6 @@ QT_BEGIN_NAMESPACE
namespace Qt3DCore {
-class QTransform;
class QTransformPrivate : public QComponentPrivate
{
Q_DECLARE_PUBLIC(QTransform)
@@ -62,22 +61,15 @@ class QTransformPrivate : public QComponentPrivate
public:
QTransformPrivate();
- void _q_transformDestroyed(QObject *obj);
- void _q_update();
- QMatrix4x4 applyTransforms() const;
-
- mutable bool m_transformsDirty;
- QList<QAbstractTransform*> m_transforms;
-
- mutable bool m_matrixDirty;
- mutable QMatrix4x4 m_matrix;
-
// Stored in this order as QQuaternion is bigger than QVector3D
// Operations are applied in the order of:
// scale, rotation, translation
QQuaternion m_rotation;
QVector3D m_scale;
QVector3D m_translation;
+
+ mutable QMatrix4x4 m_matrix;
+ mutable bool m_matrixDirty;
};
} // namespace Qt3DCore