249void QQuickScale::applyTo(QMatrix4x4 *matrix)
const
251 Q_D(
const QQuickScale);
252 matrix->translate(d->origin);
253 matrix->scale(d->xScale, d->yScale, d->zScale);
254 matrix->translate(-d->origin);
383void QQuickRotation::setAxis(Qt::Axis axis)
388 setAxis(QVector3D(1, 0, 0));
391 setAxis(QVector3D(0, 1, 0));
394 setAxis(QVector3D(0, 0, 1));
427void QQuickRotation::setDistanceToPlane(qreal newDistanceToPlane)
430 if (qFuzzyCompare(d->distanceToPlane, newDistanceToPlane))
432 d->distanceToPlane = newDistanceToPlane;
433 emit distanceToPlaneChanged();
436void QQuickRotation::applyTo(QMatrix4x4 *matrix)
const
438 Q_D(
const QQuickRotation);
440 if (d->angle == 0. || d->axis.isNull())
443 matrix->translate(d->origin);
444 matrix->projectedRotate(d->angle, d->axis.x(), d->axis.y(), d->axis.z(), d->distanceToPlane);
445 matrix->translate(-d->origin);
642void QQuickShear::applyTo(QMatrix4x4 *matrix)
const
644 Q_D(
const QQuickShear);
645 if (d->xFactor == 0.0 && d->yFactor == 0.0 && d->xAngle == 0.0 && d->yAngle == 0.0)
648 const qreal xShear = qTan(qDegreesToRadians(d->xAngle)) + d->xFactor;
649 const qreal yShear = qTan(qDegreesToRadians(d->yAngle)) + d->yFactor;
651 matrix->translate(d->origin);
652 *matrix *= QMatrix4x4(1.0, xShear, 0.0, 0.0,
653 yShear, 1.0, 0.0, 0.0,
656 matrix->translate(-d->origin);