Класс QMorphingAnimation
класс Qt3DAnimation::QMorphingAnimationКласс, реализующий анимацию морфинга blend-shape. Подробнее...
| Заголовок: | #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 |
Типы публичного доступа
| Перечисление | Method { Normalized, Relative } |
Свойства
|
|
Открытые функции
| QMorphingAnimation(QObject *parent = nullptr) | |
| void | addMorphTarget(Qt3DAnimation::QMorphTarget *target) |
| QEasingCurve | easing() const |
| QVector<float> | getWeights(int positionIndex) |
| float | interpolator() const |
| QMorphingAnimation::Method | 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 | установитьСглаживание(const QEasingCurve &сглаживание) |
| void | установитьМетод(QMorphingAnimation::Method метод) |
| void | установитьЦель(Qt3DRender::QGeometryRenderer *цель) |
| void | установитьИмяЦели(const QString имя) |
| void | установитьПозицииЦели(const QVector<float> &позицииЦели) |
Сигналы
| void | сглаживаниеИзменилось(const QEasingCurve &сглаживание) |
| void | интерполяторИзменился(float интерполятор) |
| void | методИзменился(QMorphingAnimation::Method метод) |
| void | цельИзменилась(Qt3DRender::QGeometryRenderer *цель) |
| void | имяЦелиИзменилось(const QString &имя) |
| void | позицииЦелиИзменились(const QVector<float> &позицииЦели) |
Подробное описание
Класс Qt3DAnimation::QMorphingAnimation реализует анимацию морфинга слияния к целевому QGeometryRenderer. QMorphingAnimation устанавливает правильные QAttributes из целей морфинга для целевого QGeometryRenderer::geometry и рассчитывает интерполятор для текущей позиции. Фактическое слияние между атрибутами должно быть реализовано в материале. Qt3DAnimation::QMorphPhongMaterial реализует материал с поддержкой морфинга для модели освещения Phong. Слияние происходит между 2 атрибутами - 'base' и 'target'. Имена атрибутов base и target берутся из имен целей морфинга, где атрибут base сохраняет имеющееся у него имя, а имя атрибута target дополняется строкой "Target". Интерполятор можно задать в качестве QParameter используемому материалу. Все цели морфинга в анимации должны содержать атрибуты с теми же именами, что и в базовом геометрии.
Документация по типам членов
перечисление 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.1/qt3danimation-qmorphinganimation.html