QVertexBlendAnimation Class

class Qt3DAnimation ::QVertexBlendAnimation

A class implementing vertex-blend morphing animation. 更多...

头: #include <QVertexBlendAnimation>
CMake: find_package(Qt6 COMPONENTS 3danimation REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::3danimation)
qmake: QT += 3danimation
Since: Qt 5.9
实例化: VertexBlendAnimation
继承: Qt3DAnimation::QAbstractAnimation

特性

公共函数

  QVertexBlendAnimation (QObject * parent = nullptr)
void addMorphTarget (Qt3DAnimation::QMorphTarget * target )
float interpolator () const
QList<Qt3DAnimation::QMorphTarget *> morphTargetList ()
void removeMorphTarget (Qt3DAnimation::QMorphTarget * target )
void setMorphTargets (const QList<Qt3DAnimation::QMorphTarget *> & 目标 )
Qt3DRender::QGeometryRenderer * target () const
QString targetName () const
QList<float> targetPositions () const

公共槽

void setTarget (Qt3DRender::QGeometryRenderer * target )
void setTargetName (const QString name )
void setTargetPositions (const QList<float> & targetPositions )

信号

void interpolatorChanged (float interpolator )
void targetChanged (Qt3DRender::QGeometryRenderer * target )
void targetNameChanged (const QString & name )
void targetPositionsChanged (const QList<float> & targetPositions )

详细描述

A Qt3DAnimation::QVertexBlendAnimation class implements vertex-blend morphing animation to a target QGeometryRenderer . The QVertexBlendAnimation sets the correct QAttributes morph targets to the target QGeometryRenderer::geometry and calculates interpolator for the current position. Unlike with QMorphingAnimation , where the blending is controller with blend weights, the blending occurs between sequential morph targets. The actual blending between the attributes must be implemented in the material. Qt3DAnimation::QMorphPhongMaterial implements material with morphing support for phong lighting model. The blending happens between 2 attributes - 'base' and 'target'. The names for the base and target attributes are taken from the morph target names, where the base attribute retains the name it already has and the target attribute name gets 'Target' appended to the name. The interpolator can be set as a QParameter to the used material. All morph targets in the animation should contain the attributes with same names as those in the base geometry.

特性文档编制

[read-only] interpolator : const float

Holds the interpolator between base and target attributes.

访问函数:

float interpolator () const

通知程序信号:

void interpolatorChanged (float interpolator )

target : Qt3DRender::QGeometryRenderer *

Holds the target QGeometryRenderer the morphing animation is applied to.

访问函数:

Qt3DRender::QGeometryRenderer * target () const
void setTarget (Qt3DRender::QGeometryRenderer * target )

通知程序信号:

void targetChanged (Qt3DRender::QGeometryRenderer * target )

targetName : QString

Holds the name of the target geometry. This is a convenience property making it easier to match the target geometry to the morphing animation. The name is usually same as the name of the parent entity of the target QGeometryRenderer, but does not have to be.

访问函数:

QString targetName () const
void setTargetName (const QString name )

通知程序信号:

void targetNameChanged (const QString & name )

targetPositions : QList < float >

Holds the position values of the morph target. Each position in the list specifies the position of the corresponding morph target with the same index. The values must be in an ascending order. Values can be positive or negative and do not have any predefined unit.

访问函数:

QList<float> targetPositions () const
void setTargetPositions (const QList<float> & targetPositions )

通知程序信号:

void targetPositionsChanged (const QList<float> & targetPositions )

成员函数文档编制

QVertexBlendAnimation:: QVertexBlendAnimation ( QObject * parent = nullptr)

Construct a new QVertexBlendAnimation with parent .

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

Add new morph target at the end of the animation.

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

Return morph target list.

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

Remove morph target from the animation.

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

Set morph 目标 to animation. Old targets are cleared.