QMorphingAnimation Class

( Qt3DAnimation::QMorphingAnimation )

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

頭: #include <QMorphingAnimation>
qmake: QT += 3danimation
Since: Qt 5.9
實例化: MorphingAnimation
繼承: Qt3DAnimation::QAbstractAnimation

公共類型

enum 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 *> & 目標 )
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 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 method )
void targetChanged (Qt3DRender::QGeometryRenderer * target )
void targetNameChanged (const QString & name )
void targetPositionsChanged (const QVector<float> & targetPositions )

靜態公共成員

const QMetaObject staticMetaObject

額外繼承成員

詳細描述

A class implementing blend-shape morphing animation.

A Qt3DAnimation::QMorphingAnimation class implements blend-shape morphing animation to a target QGeometryRenderer QMorphingAnimation sets the correct QAttributes morph targets to the target QGeometryRenderer::geometry and calculates interpolator for the current position. 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.

成員類型文檔編製

enum QMorphingAnimation:: 方法

This enumeration specifies the morphing method.

常量 描述
Qt3DAnimation::QMorphingAnimation::Normalized 0 The blending should use the normalized formula; V' = Vbase * (1.0 - sum(Wi)) + sum[Vi * Wi]
Qt3DAnimation::QMorphingAnimation::Relative 1 The blending should use the relative formula; V' = Vbase + sum[Vi * Wi]

特性文檔編製

easing : QEasingCurve

Holds the easing curve of the interpolator between morph targets.

訪問函數:

QEasingCurve easing () const
void setEasing (const QEasingCurve & easing )

通知程序信號:

void easingChanged (const QEasingCurve & easing )

interpolator : const float

Holds the interpolator between base and target attributes.

訪問函數:

float interpolator () const

通知程序信號:

void interpolatorChanged (float interpolator )

method : Method

Holds the morphing method. The default is Relative.

訪問函數:

QMorphingAnimation::Method 方法 () const
void setMethod (QMorphingAnimation::Method method )

通知程序信號:

void methodChanged (QMorphingAnimation::Method method )

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 : QVector < 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.

訪問函數:

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

通知程序信號:

void targetPositionsChanged (const QVector<float> & targetPositions )

成員函數文檔編製

QMorphingAnimation:: QMorphingAnimation ( QObject * parent = nullptr)

Construct a new QMorphingAnimation with parent .

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

Add new morph target at the end of the animation.

QVector < float > QMorphingAnimation:: getWeights ( int positionIndex )

Return morph weights at positionIndex .

QVector < Qt3DAnimation::QMorphTarget *> QMorphingAnimation:: morphTargetList ()

Return morph target list.

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

Remove morph target from the animation.

void QMorphingAnimation:: setMorphTargets (const QVector < Qt3DAnimation::QMorphTarget *> & 目標 )

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

void QMorphingAnimation:: setWeights ( int positionIndex , const QVector < float > & weights )

Sets morph weights at positionIndex .