Класс QMorphingAnimation
класс Qt3DAnimation::QMorphingAnimationКласс, реализующий анимацию морфинга с помощью смешивания форм. Подробнее...
| Заголовок: | #include <QMorphingAnimation> |
| CMake: | find_package(Qt6 COMPONENTS 3danimation REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::3danimation) |
| qmake: | QT += 3danimation |
| С момента: | Qt 5.9 |
| Создаётся из: | MorphingAnimation |
| Наследуется от: | Qt3DAnimation::QAbstractAnimation |
Типы публичного доступа
| Перечисление | Метод { Нормализованный, Относительный } |
Свойства
|
|
Открытые функции
| QMorphingAnimation(QObject *parent = nullptr) | |
| void | addMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| QEasingCurve | easing() const |
| QVector<float> | getWeights(int positionIndex) |
| float | interpolator() const |
| QMorphingAnimation::Метод | method() const |
| QVector<Qt3DAnimation::QMorphTarget *> | morphTargetList() |
| void | removeMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| void | setMorphTargets(const QVector<Qt3DAnimation::QMorphTarget *> &targets) |
| void | setWeights(int positionIndex, const QVector<float> &weights) |
| Qt3DRender::QGeometryRenderer * | target() const |
| QString | targetName() const |
| QVector<float> | targetPositions() const |
Открытые слоты
| void | setEasing(const QEasingCurve &easing) |
| void | setMethod(QMorphingAnimation::Метод method) |
| void | setTarget(Qt3DRender::QGeometryRenderer *target) |
| void | setTargetName(const QString name) |
| void | setTargetPositions(const QVector<float> &targetPositions) |
Сигналы
| void | easingChanged(const QEasingCurve &easing) |
| void | interpolatorChanged(float interpolator) |
| void | methodChanged(QMorphingAnimation::Метод method) |
| void | targetChanged(Qt3DRender::QGeometryRenderer *target) |
| void | targetNameChanged(const QString &name) |
| void | targetPositionsChanged(const QVector<float> &targetPositions) |
Подробное описание
Qt3DAnimation::QMorphingAnimation реализует анимацию морфинга по форме для целевого QGeometryRenderer. QMorphingAnimation устанавливает правильные QAttributes из целевых morph целей для целевого QGeometryRenderer::geometry и вычисляет интерполятор для текущей позиции. Фактическое смешивание между атрибутами должно быть реализовано в материале. Qt3DAnimation::QMorphPhongMaterial реализует материал со поддержкой морфинга для модели освещения Phong. Смешивание происходит между двумя атрибутами - 'base' и 'target'. Имена атрибутов base и target берутся из имён morph целей, где атрибут base сохраняет уже имеющееся имя, а имя атрибута target дополняется 'Target'. Интерполятор может быть задан как QParameter для используемого материала. Все morph цели в анимации должны содержать атрибуты с теми же именами, что и в базовой геометрии.
Документация по типам членов
Перечисление QMorphingAnimation::Метод
Это перечисление задаёт метод морфинга.
| Постоянная | Значение | Описание |
|---|---|---|
Qt3DAnimation::QMorphingAnimation::Normalized |
0 |
Смешивание должно использовать нормализованную формулу; V' = Vbase * (1.0 - sum(Wi)) + sum[Vi * Wi] |
Qt3DAnimation::QMorphingAnimation::Relative |
1 |
Смешивание должно использовать относительную формулу; V' = Vbase + sum[Vi * Wi] |
Документация свойств
easing : QEasingCurve
Содержит кривую сглаживания интерполятора между морфинговыми целевыми объектами.
Функции доступа:
| QEasingCurve | easing() const |
| void | setEasing(const QEasingCurve &easing) |
Сигнал уведомления:
| void | easingChanged(const QEasingCurve &easing) |
[read-only] interpolator : const float
Содержит интерполятор между базовыми и целевыми атрибутами.
Функции доступа:
| float | interpolator() const |
Сигнал уведомления:
| void | interpolatorChanged(float interpolator) |
method : Method
Содержит метод морфирования. По умолчанию — Relative.
Функции доступа:
| QMorphingAnimation::Method | method() const |
| void | setMethod(QMorphingAnimation::Method method) |
Сигнал уведомления:
| void | methodChanged(QMorphingAnimation::Method method) |
target : Qt3DRender::QGeometryRenderer*
Содержит целевой QGeometryRenderer, к которому применяется анимация морфирования.
Функции доступа:
| Qt3DRender::QGeometryRenderer * | target() const |
| void | setTarget(Qt3DRender::QGeometryRenderer *target) |
Сигнал уведомления:
| void | targetChanged(Qt3DRender::QGeometryRenderer *target) |
targetName : QString
Содержит имя целевой геометрии. Это удобное свойство, упрощающее сопоставление целевой геометрии с анимацией морфирования. Имя обычно совпадает с именем родительского сущности целевого QGeometryRenderer, но не обязательно.
Функции доступа:
| QString | targetName() const |
| void | setTargetName(const QString name) |
Сигнал уведомления:
| void | targetNameChanged(const QString &name) |
targetPositions : QVector<float>
Содержит значения позиций целевого объекта морфирования. Каждая позиция в списке указывает позицию соответствующего целевого объекта морфирования с тем же индексом. Значения должны быть в порядке возрастания. Значения могут быть положительными или отрицательными и не имеют предопределённой единицы измерения.
Функции доступа:
| QVector<float> | targetPositions() const |
| void | setTargetPositions(const QVector<float> &targetPositions) |
Сигнал уведомления:
| void | targetPositionsChanged(const QVector<float> &targetPositions) |
Документация функций-членов
QMorphingAnimation::QMorphingAnimation(QObject *parent = nullptr)
Создаёт новую QMorphingAnimation с parent.
void QMorphingAnimation::addMorphTarget(Qt3DAnimation::QMorphTarget *target)
Добавляет новый морфинговый target в конец анимации.
QVector<float> QMorphingAnimation::getWeights(int positionIndex)
Возвращает веса морфирования в positionIndex.
QVector<Qt3DAnimation::QMorphTarget *> QMorphingAnimation::morphTargetList()
Возвращает список целевых объектов морфирования.
void QMorphingAnimation::removeMorphTarget(Qt3DAnimation::QMorphTarget *target)
Удаляет морфинговый target из анимации.
void QMorphingAnimation::setMorphTargets(const QVector<Qt3DAnimation::QMorphTarget *> &targets)
Устанавливает морфинговые targets для анимации. Старые целевые объекты очищаются.
void QMorphingAnimation::setWeights(int positionIndex, const QVector<float> &weights)
Устанавливает веса морфирования в positionIndex.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qt3danimation-qmorphinganimation.html