QTransform Class | Qt 3D 5.12.12

- Qt 5.12
- Qt 3D
- C++ Classes
- QTransform
- Qt 5.12.12 Reference Documentation

# QTransform Class

(Qt3DCore::QTransform)

Used to perform transforms on meshes. More...

Header: | #include <QTransform>
qmake: | QT += 3dcore
Since: | Qt 5.6
Instantiated By: | Transform
Inherits: | Qt3DCore::QComponent

- List of all members, including inherited members
- Obsolete members

## Properties

- matrix : QMatrix4x4
- rotation : QQuaternion
- rotationX : float
- rotationY : float

- rotationZ : float
- scale : float
- scale3D : QVector3D
- translation : QVector3D

- 1 property inherited from Qt3DCore::QComponent
- 3 properties inherited from Qt3DCore::QNode
- 1 property inherited from QObject

## Public Functions

| QTransform(Qt3DCore::QNode *parent = nullptr)
QMatrix4x4 | matrix() const
QQuaternion | rotation() const
float | rotationX() const
float | rotationY() const
float | rotationZ() const
float | scale() const
QVector3D | scale3D() const
QVector3D | translation() const

- 2 public functions inherited from Qt3DCore::QComponent
- 13 public functions inherited from Qt3DCore::QNode
- 31 public functions inherited from QObject

## Public Slots

void | setMatrix(const QMatrix4x4 &matrix)
void | setRotation(const QQuaternion &rotation)
void | setRotationX(float rotationX)
void | setRotationY(float rotationY)
void | setRotationZ(float rotationZ)
void | setScale(float scale)
void | setScale3D(const QVector3D &scale)
void | setTranslation(const QVector3D &translation)

- 1 public slot inherited from Qt3DCore::QComponent
- 3 public slots inherited from Qt3DCore::QNode
- 1 public slot inherited from QObject

## Signals

void | matrixChanged()
void | rotationChanged(const QQuaternion &rotation)
void | rotationXChanged(float rotationX)
void | rotationYChanged(float rotationY)
void | rotationZChanged(float rotationZ)
void | scale3DChanged(const QVector3D &scale)
void | scaleChanged(float scale)
void | translationChanged(const QVector3D &translation)

- 3 signals inherited from Qt3DCore::QComponent
- 4 signals inherited from Qt3DCore::QNode
- 2 signals inherited from QObject

## Static Public Members

QQuaternion | fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
QQuaternion | fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2)
QQuaternion | fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3)
QQuaternion | fromAxisAndAngle(const QVector3D &axis, float angle)
QQuaternion | fromAxisAndAngle(float x, float y, float z, float angle)
QQuaternion | fromEulerAngles(const QVector3D &eulerAngles)
QQuaternion | fromEulerAngles(float pitch, float yaw, float roll)
QMatrix4x4 | rotateAround(const QVector3D &point, float angle, const QVector3D &axis)
QMatrix4x4 | rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
const QMetaObject | staticMetaObject

- 9 static public members inherited from QObject

### Additional Inherited Members

- 2 protected functions inherited from Qt3DCore::QNode
- 9 protected functions inherited from QObject

## Detailed Description

Used to perform transforms on meshes.

The QTransform component is not shareable between multiple QEntity's. The transformation is held as QVector3D scale, QQuaternion rotation and QVector3D translation components. The transformations are applied to the mesh in that order. When QTransform::matrix property is set, it is decomposed to these transform components and corresponding signals are emitted.

Several helper functions are provided to set up the QTransform; fromAxisAndAngle and fromAxesAndAngles can be used to set the rotation around specific axes, fromEulerAngles can be used to set the rotation based on euler angles and rotateAround can be used to rotate the object around specific point relative to local origin.

## Property Documentation

### matrix : QMatrix4x4

Holds the QMatrix4x4 of the transform.

Note: When the matrix property is set, it is decomposed to translation, rotation and scale components.

Access functions:

QMatrix4x4 | matrix() const
void | setMatrix(const QMatrix4x4 &matrix)

Notifier signal:

void | matrixChanged()

### rotation : QQuaternion

Holds the rotation of the transform as QQuaternion.

Access functions:

QQuaternion | rotation() const
void | setRotation(const QQuaternion &rotation)

Notifier signal:

void | rotationChanged(const QQuaternion &rotation)

### rotationX : float

Holds the x rotation of the transform as Euler angle.

Access functions:

float | rotationX() const
void | setRotationX(float rotationX)

Notifier signal:

void | rotationXChanged(float rotationX)

### rotationY : float

Holds the y rotation of the transform as Euler angle.

Access functions:

float | rotationY() const
void | setRotationY(float rotationY)

Notifier signal:

void | rotationYChanged(float rotationY)

### rotationZ : float

Holds the z rotation of the transform as Euler angle.

Access functions:

float | rotationZ() const
void | setRotationZ(float rotationZ)

Notifier signal:

void | rotationZChanged(float rotationZ)

### scale : float

Holds the uniform scale of the transform. If the scale has been set with setScale3D, holds the x value only.

Access functions:

float | scale() const
void | setScale(float scale)

Notifier signal:

void | scaleChanged(float scale)

### scale3D : QVector3D

Holds the scale of the transform as QVector3D.

Access functions:

QVector3D | scale3D() const
void | setScale3D(const QVector3D &scale)

Notifier signal:

void | scale3DChanged(const QVector3D &scale)

### translation : QVector3D

Holds the translation of the transform as QVector3D.

Access functions:

QVector3D | translation() const
void | setTranslation(const QVector3D &translation)

Notifier signal:

void | translationChanged(const QVector3D &translation)

## Member Function Documentation

### QTransform::QTransform(Qt3DCore::QNode *parent = nullptr)

Constructs a new QTransform with parent.

### `[static]` QQuaternion QTransform::fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)

Creates a QQuaterniom definining a rotation from the axes xAxis, yAxis and zAxis.

This function was introduced in Qt 5.11.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2)

Creates a QQuaternion from axis1, angle1, axis2, and angle2. Returns the resulting QQuaternion.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3)

Creates a QQuaternion from axis1, angle1, axis2, angle2, axis3, and angle3. Returns the resulting QQuaternion.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QQuaternion QTransform::fromAxisAndAngle(const QVector3D &axis, float angle)

Creates a QQuaternion from axis and angle. Returns the resulting QQuaternion.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QQuaternion QTransform::fromAxisAndAngle(float x, float y, float z, float angle)

Creates a QQuaternion from x, y, z, and angle. Returns the resulting QQuaternion.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QQuaternion QTransform::fromEulerAngles(const QVector3D &eulerAngles)

Creates a QQuaternion from eulerAngles. Returns the resulting QQuaternion.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QQuaternion QTransform::fromEulerAngles(float pitch, float yaw, float roll)

Creates a QQuaternion from pitch, yaw, and roll. Returns the resulting QQuaternion.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QMatrix4x4 QTransform::rotateAround(const QVector3D &point, float angle, const QVector3D &axis)

Creates a rotation matrix from axis and angle around point. Returns the resulting QMatrix4x4.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.

### `[static]` QMatrix4x4 QTransform::rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)

Returns a rotation matrix defined from the axes xAxis, yAxis, zAxis.

This function was introduced in Qt 5.11.

Note: This function can be invoked via the meta-object system and from QML. See Q_INVOKABLE.