QMorphingAnimation 类

class Qt3DAnimation::QMorphingAnimation

一个实现融合型形状变形动画的类。 更多...

头文件 #include <QMorphingAnimation>
CMakefind_package(Qt6 REQUIRED COMPONENTS 3danimation)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmakeQT += 3danimation
由以下类实例化: MorphingAnimation
继承自: Qt3DAnimation::QAbstractAnimation

公共类型

枚举方法 { Normalized, Relative }

属性

公共函数

QMorphingAnimation(QObject *parent = nullptr)
voidaddMorphTarget(Qt3DAnimation::QMorphTarget *target)
QEasingCurveeasing() const
QVector(radfloat)getWeights(int positionIndex)
floatinterpolator() const
Qt3DAnimation::QMorphingAnimation::Methodmethod() const
QVectormorphTargetList()
voidremoveMorphTarget(Qt3DAnimation::QMorphTarget *target)
voidsetMorphTargets(const QVector &targets)
voidsetWeights(int positionIndex, const QVector &weights)
Qt3DRender::QGeometryRenderer *target() const
QStringtargetName() const
QVector(radfloat)targetPositions() const

公共槽函数

voidsetEasing(const QEasingCurve &easing)
voidsetMethod(Qt3DAnimation::QMorphingAnimation::Method method)
voidsetTarget(Qt3DRender::QGeometryRenderer *target)
voidsetTargetName(const QString name)
voidsetTargetPositions(const QVector<float> &targetPositions)

信号

voideasingChanged(const QEasingCurve &easing)
voidinterpolatorChanged(float interpolator)
voidmethodChanged(Qt3DAnimation::QMorphingAnimation::Method method)
voidtargetChanged(Qt3DRender::QGeometryRenderer *target)
voidtargetNameChanged(const QString &name)
voidtargetPositionsChanged(const QVector<float> &targetPositions)

详细描述

Qt3DAnimation::QMorphingAnimation 类实现了将混合形状变形动画应用到目标 QGeometryRenderer 的功能。QMorphingAnimation 设置从 morph 目标 到目标 QGeometryRenderer::geometry 的正确 QAttributes,并计算当前位置的插值器。在材质中必须实现实际属性间的混合。Qt3DAnimation::QMorphPhongMaterial 实现了支持 phong 光照模型的变形材质。混合发生在2个属性之间 - 'base' 和 'target'。基础属性和目标属性的名称来自变形目标名称,其中基础属性保留原名,目标属性名称在名称后追加 'Target'。插值器可以设置为用于材料的 QParameter。动画中的所有变形目标应包含与基础几何体同名的属性。

成员类型文档

enum QMorphingAnimation::Method

此枚举指定变形方法。

常量描述
Qt3DAnimation::QMorphingAnimation::Normalized0混合应使用归一化公式;V'' = Vbase * (1.0 - sum(Wi)) + sum[Vi * Wi]
Qt3DAnimation::QMorphingAnimation::Relative1混合应使用相对公式;V'' = Vbase + sum[Vi * Wi]

属性文档

easing : QEasingCurve

存储中间变形目标之间的插值器的易用曲线。

访问函数

QEasingCurveeasing() const
voidsetEasing(const QEasingCurve &easing)

通知信号

voideasingChanged(const QEasingCurve &easing)

[只读] interpolator : const float

存储基础属性和目标属性之间的插值器。

访问函数

floatinterpolator() const

通知信号

voidinterpolatorChanged(float interpolator)

method : Method

存储变形方法。默认为 Relative。

访问函数

Qt3DAnimation::QMorphingAnimation::Methodmethod() const
voidsetMethod(Qt3DAnimation::QMorphingAnimation::Method method)

通知信号

voidmethodChanged(Qt3DAnimation::QMorphingAnimation::Method method)

target : Qt3DRender::QGeometryRenderer*

包含应用形变动画的目标 QGeometryRenderer。

访问函数

Qt3DRender::QGeometryRenderer *target() const
voidsetTarget(Qt3DRender::QGeometryRenderer *target)

通知信号

voidtargetChanged(Qt3DRender::QGeometryRenderer *target)

targetName : QString

包含目标几何体的名称。这是一个便捷属性,使得将目标几何体与形变动画匹配变得更简单。名称通常与目标 QGeometryRenderer 的父实体的名称相同,但不一定是这样。

访问函数

QStringtargetName() const
voidsetTargetName(const QString name)

通知信号

voidtargetNameChanged(const QString &name)

targetPositions : QVector<float>

包含形变目标的位移值。列表中的每个位置指定具有相同索引的对应形变目标的位移。值必须是按顺序排列的。值可以是正数或负数,并且没有预定义的单位。

访问函数

QVector(radfloat)targetPositions() const
voidsetTargetPositions(const QVector<float> &targetPositions)

通知信号

voidtargetPositionsChanged(const QVector<float> &targetPositions)

成员函数文档

[显式] QMorphingAnimation::QMorphingAnimation(QObject *parent = nullptr)

使用 parent 构造一个新的 QMorphingAnimation。

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 处设置形变 weights

© 2024 Qt 公司有限公司。此处包含的文档贡献归其各自所有者所有。此处提供的文档受《Vu Free Documentation License 版本 1.3》的许可,由自由软件基金会发布。Qt 和相应的标志是芬兰和/或全世界 Qt 公司有限公司的商标。所有其他商标均为其各自所有者的财产。