summaryrefslogtreecommitdiffstats
path: root/src/core/transforms/qtransform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/transforms/qtransform.cpp')
-rw-r--r--src/core/transforms/qtransform.cpp25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/core/transforms/qtransform.cpp b/src/core/transforms/qtransform.cpp
index 3409b8a03..b7f925c5b 100644
--- a/src/core/transforms/qtransform.cpp
+++ b/src/core/transforms/qtransform.cpp
@@ -122,7 +122,7 @@ void QTransform::copy(const QNode *ref)
// transformations applied
d_func()->m_matrix = transform->matrix();
d_func()->m_rotation = transform->rotation();
- d_func()->m_scale = transform->scale();
+ d_func()->m_scale = transform->scale3D();
d_func()->m_translation = transform->translation();
}
@@ -165,21 +165,38 @@ QMatrix4x4 QTransform::matrix() const
return d->m_matrix;
}
-void QTransform::setScale(const QVector3D &scale)
+void QTransform::setScale3D(const QVector3D &scale)
{
Q_D(QTransform);
if (scale != d->m_scale) {
d->m_scale = scale;
- emit scaleChanged();
+ emit scale3DChanged();
}
}
-QVector3D QTransform::scale() const
+QVector3D QTransform::scale3D() const
{
Q_D(const QTransform);
return d->m_scale;
}
+void QTransform::setScale(float scale)
+{
+ Q_D(QTransform);
+ if (scale != d->m_scale.x()) {
+ setScale3D(QVector3D(scale, scale, scale));
+ const bool wasBlocked = blockNotifications(true);
+ emit scaleChanged();
+ blockNotifications(wasBlocked);
+ }
+}
+
+float QTransform::scale() const
+{
+ Q_D(const QTransform);
+ return d->m_scale.x();
+}
+
void QTransform::setRotation(const QQuaternion &rotation)
{
Q_D(QTransform);