QVertexBlendAnimation 类

Qt3DAnimation::QVertexBlendAnimation

实现顶点混合变形动画的类。更多...

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

属性

公共函数

QVertexBlendAnimation(QObject *parent = nullptr)
voidaddMorphTarget(Qt3DAnimation::QMorphTarget *target)
floatinterpolator() const
QList<Qt3DAnimation::QMorphTarget *>morphTargetList()
voidremoveMorphTarget(Qt3DAnimation::QMorphTarget *target)
voidsetMorphTargets(const QList<Qt3DAnimation::QMorphTarget *> &targets)
Qt3DRender::QGeometryRenderer *target() const
QStringtargetName() const
QList<float>targetPositions() const

公共槽

voidsetTarget(Qt3DRender::QGeometryRenderer *target)
voidsetTargetName(const QString name)
voidsetTargetPositions(const QList<float> &targetPositions)

信号

voidinterpolatorChanged(float interpolator)
voidtargetChanged(Qt3DRender::QGeometryRenderer *target)
voidtargetNameChanged(const QString &name)
voidtargetPositionsChanged(const QList<float> &targetPositions)

详细描述

Qt3DAnimation::QVertexBlendAnimation类实现了目标QGeometryRenderer的顶点混合变形动画。QVertexBlendAnimation会将变形态目 morph targets的正确QAttributes设置到目标QGeometryRenderer::geometry,并为当前位置计算插值器。与使用插值权重进行混合的QMorphingAnimation不同,混合发生在连续的变形态目之间。实际attributes之间的混合必须在材质中实现。Qt3DAnimation::QMorphPhongMaterial实现了支持phong光照模型的材料。混合发生在两个属性之间 - ‘基础’和‘目标’。基础属性和目标属性的名\dash名来自变形态目名,其中基础属性保留其原名称,而目标属性名称则添加“Target”到名称中。插值器可以作为QParameter设置为所使用的材质。动画中的所有变形态目都应该包含与基础几何相同名称的属性。

属性文档

[只读] interpolator : const float

保留基础和目标属性之间的插值器。

访问函数

floatinterpolator() const

通知信号

voidinterpolatorChanged(float interpolator)

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 : QList<float>

保留变形态目位置值。列表中的每个位置指定了具有相同索引的相应变形态目的位置。值必须按升序排列。值可以是正数或负数,不具有任何预定义单位。

访问函数

QList<float>targetPositions() const
voidsetTargetPositions(const QList<float> &targetPositions)

通知信号

voidtargetPositionsChanged(const QList<float> &targetPositions)

成员函数文档

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

使用parent构建一个新的QVertexBlendAnimation。

void QVertexBlendAnimation::addMorphTarget(Qt3DAnimation::QMorphTarget *target)

在动画末尾添加新的变形态目。

QList<Qt3DAnimation::QMorphTarget *> QVertexBlendAnimation::morphTargetList()

返回形变目标列表。

void QVertexBlendAnimation::removeMorphTarget(Qt3DAnimation::QMorphTarget *target)

从动画中移除形变目标

void QVertexBlendAnimation::setMorphTargets(const QList<Qt3DAnimation::QMorphTarget *> &targets)

设置动画的形变目标。旧目标将被清除。

© 2024 The Qt Company Ltd. 本文档中的文档贡献是各自所有者的版权。本文档根据自由软件基金会发布的 GNU 自由文档许可证第 1.3 版本许可。Qt 和相应的标志是芬兰和/或全球其他国家的 The Qt Company Ltd. 的商标。所有其他商标均为其各自所有者的财产。