1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QT3DANIMATION_QMORPHINGANIMATION_P_H
5#define QT3DANIMATION_QMORPHINGANIMATION_P_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists for the convenience
12// of other Qt classes. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <QtCore/qeasingcurve.h>
19#include <Qt3DAnimation/qmorphinganimation.h>
20
21#include <private/qobject_p.h>
22#include <private/qabstractanimation_p.h>
23
24QT_BEGIN_NAMESPACE
25
26namespace Qt3DAnimation {
27
28class QMorphingAnimationPrivate : public QAbstractAnimationPrivate
29{
30public:
31 QMorphingAnimationPrivate();
32 ~QMorphingAnimationPrivate();
33
34 void updateAnimation(float position);
35 void setTargetInterpolated(int morphTarget);
36
37 float m_minposition;
38 float m_maxposition;
39 QVector<float> m_targetPositions;
40 QVector<QVector<float>*> m_weights;
41 QVector<float> m_morphKey;
42 QStringList m_attributeNames;
43 QVector<Qt3DAnimation::QMorphTarget *> m_morphTargets;
44 QMorphTarget *m_flattened;
45 QMorphingAnimation::Method m_method;
46 QEasingCurve m_easing;
47 float m_interpolator;
48 Qt3DRender::QGeometryRenderer *m_target;
49 QString m_targetName;
50
51 QMorphTarget *m_currentTarget;
52
53 QMetaObject::Connection m_positionConnection;
54
55 Q_DECLARE_PUBLIC(QMorphingAnimation)
56};
57
58} // Qt3DAnimation
59
60QT_END_NAMESPACE
61
62#endif // QT3DANIMATION_QMORPHINGANIMATION_P_H
63

source code of qt3d/src/animation/frontend/qmorphinganimation_p.h