Класс QTransform
класс Qt3DCore::QTransformИспользуется для выполнения преобразований над мешами. Подробнее...
| Заголовок: | #include <QTransform> |
| CMake: | find_package(Qt6 COMPONENTS 3dcore REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3dcore) |
| qmake: | QT += 3dcore |
| С версии: | Qt 5.6 |
| Создается из: | Transform |
| Наследует: | Qt3DCore::QComponent |
Свойства
|
Открытые функции
| 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 |
| QMatrix4x4 | worldMatrix() const |
Открытые слоты
| 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) |
Сигналы
| 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) |
| void | worldMatrixChanged(const QMatrix4x4 &worldMatrix) |
Статические открытые члены
| 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) |
Подробное описание
Компонент QTransform не может быть совместно использован несколькими QEntity. Преобразование сохраняется как компоненты масштаба QVector3D, вращения QQuaternion и перемещения QVector3D. Преобразования применяются к мешу в указанном порядке. При установке свойства QTransform::matrix оно разлагается на эти компоненты преобразования, и генерируются соответствующие сигналы.
Для настройки QTransform предоставлены несколько вспомогательных функций; fromAxisAndAngle и fromAxesAndAngles могут использоваться для задания вращения вокруг определённых осей, fromEulerAngles для задания вращения на основе углов Эйлера, а rotateAround для вращения объекта вокруг определённой точки относительно локального начала координат.
Документация свойств
matrix : QMatrix4x4
Содержит QMatrix4x4 преобразования.
Примечание: При установке свойства matrix, оно разлагается на компоненты смещения, вращения и масштабирования.
Функции доступа:
| QMatrix4x4 | matrix() const |
| void | setMatrix(const QMatrix4x4 &matrix) |
Сигнал уведомления:
| void | matrixChanged() |
rotation : QQuaternion
Содержит вращение преобразования в виде QQuaternion.
Функции доступа:
| QQuaternion | rotation() const |
| void | setRotation(const QQuaternion &rotation) |
Сигнал уведомления:
| void | rotationChanged(const QQuaternion &rotation) |
rotationX : float
Содержит вращение по оси X преобразования в виде угла Эйлера.
Функции доступа:
| float | rotationX() const |
| void | setRotationX(float rotationX) |
Сигнал уведомления:
| void | rotationXChanged(float rotationX) |
rotationY : float
Содержит вращение по оси Y преобразования в виде угла Эйлера.
Функции доступа:
| float | rotationY() const |
| void | setRotationY(float rotationY) |
Сигнал уведомления:
| void | rotationYChanged(float rotationY) |
rotationZ : float
Содержит вращение по оси Z преобразования в виде угла Эйлера.
Функции доступа:
| float | rotationZ() const |
| void | setRotationZ(float rotationZ) |
Сигнал уведомления:
| void | rotationZChanged(float rotationZ) |
scale : float
Содержит равномерный масштаб преобразования. Если масштаб был установлен с помощью setScale3D, содержит только значение по оси X.
Функции доступа:
| float | scale() const |
| void | setScale(float scale) |
Сигнал уведомления:
| void | scaleChanged(float scale) |
scale3D : QVector3D
Содержит масштаб преобразования в виде QVector3D.
Функции доступа:
| QVector3D | scale3D() const |
| void | setScale3D(const QVector3D &scale) |
Сигнал уведомления:
| void | scale3DChanged(const QVector3D &scale) |
translation : QVector3D
Содержит смещение преобразования в виде QVector3D.
Функции доступа:
| QVector3D | translation() const |
| void | setTranslation(const QVector3D &translation) |
Сигнал уведомления:
| void | translationChanged(const QVector3D &translation) |
[read-only, since 5.14] worldMatrix : const QMatrix4x4
Содержит матрицу глобального преобразования для преобразования. Предполагается, что компонент QTransform ссылается на QEntity. Это упрощает идентификацию, когда часть QEntity в поддереве была преобразована в глобальной системе координат, даже если локальное преобразование не изменилось.
Это свойство было добавлено в Qt 5.14.
Функции доступа:
| QMatrix4x4 | worldMatrix() const |
Сигнал уведомления:
| void | worldMatrixChanged(const QMatrix4x4 &worldMatrix) |
Документация по членам-функциям
QTransform::QTransform(Qt3DCore::QNode *parent = nullptr)
Создаёт новый QTransform с parent.
[static invokable, since 5.11] QQuaternion QTransform::fromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
Создаёт QQuaterniom, определяющий вращение по осям xAxis, yAxis и zAxis.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
Эта функция была добавлена в Qt 5.11.
[static invokable] QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2)
Создаёт QQuaternion по осям axis1, angle1, axis2 и angle2. Возвращает полученный QQuaternion.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable] QQuaternion QTransform::fromAxesAndAngles(const QVector3D &axis1, float angle1, const QVector3D &axis2, float angle2, const QVector3D &axis3, float angle3)
Создаёт QQuaternion по осям axis1, angle1, axis2, angle2, axis3 и angle3. Возвращает полученный QQuaternion.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable] QQuaternion QTransform::fromAxisAndAngle(const QVector3D &axis, float angle)
Создаёт QQuaternion по оси axis и углу angle. Возвращает полученный QQuaternion.
Примечание: Эту функцию можно вызвать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable] QQuaternion QTransform::fromAxisAndAngle(float x, float y, float z, float angle)
Создаёт QQuaternion по значениям x, y, z и angle. Возвращает полученный QQuaternion.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable] QQuaternion QTransform::fromEulerAngles(const QVector3D &eulerAngles)
Создаёт QQuaternion по eulerAngles. Возвращает полученный QQuaternion.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable] QQuaternion QTransform::fromEulerAngles(float pitch, float yaw, float roll)
Создаёт QQuaternion по значениям pitch, yaw и roll. Возвращает полученный QQuaternion.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable] QMatrix4x4 QTransform::rotateAround(const QVector3D &point, float angle, const QVector3D &axis)
Создаёт матрицу вращения по axis и angle вокруг point. Возвращает полученную QMatrix4x4.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
[static invokable, since 5.11] QMatrix4x4 QTransform::rotateFromAxes(const QVector3D &xAxis, const QVector3D &yAxis, const QVector3D &zAxis)
Возвращает матрицу вращения, определённую по осям xAxis, yAxis и zAxis.
Примечание: Эту функцию можно вызывать через систему метаобъектов и из QML. См. Q_INVOKABLE.
Функция добавлена в Qt 5.11.
[since 5.14] QMatrix4x4 QTransform::worldMatrix() const
Возвращает матрицу глобального преобразования, связанную с QTransform, когда она ссылается на QEntity, который может быть частью иерархии QEntity.
Примечание: Функция-геттер для свойства worldMatrix.
Функция добавлена в Qt 5.14.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.1/qt3dcore-qtransform.html