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 FRICTIONAFFECTOR_H
5#define FRICTIONAFFECTOR_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 purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17#include "qquickparticleaffector_p.h"
18
19QT_BEGIN_NAMESPACE
20
21class Q_QUICKPARTICLES_PRIVATE_EXPORT QQuickFrictionAffector : public QQuickParticleAffector
22{
23 Q_OBJECT
24 Q_PROPERTY(qreal factor READ factor WRITE setFactor NOTIFY factorChanged FINAL)
25 Q_PROPERTY(qreal threshold READ threshold WRITE setThreshold NOTIFY thresholdChanged FINAL)
26 QML_NAMED_ELEMENT(Friction)
27 QML_ADDED_IN_VERSION(2, 0)
28public:
29 explicit QQuickFrictionAffector(QQuickItem *parent = nullptr);
30
31 qreal factor() const
32 {
33 return m_factor;
34 }
35
36 qreal threshold() const
37 {
38 return m_threshold;
39 }
40
41protected:
42 bool affectParticle(QQuickParticleData *d, qreal dt) override;
43
44Q_SIGNALS:
45
46 void factorChanged(qreal arg);
47 void thresholdChanged(qreal arg);
48
49public Q_SLOTS:
50
51 void setFactor(qreal arg)
52 {
53 if (m_factor != arg) {
54 m_factor = arg;
55 Q_EMIT factorChanged(arg);
56 }
57 }
58
59 void setThreshold(qreal arg)
60 {
61 if (m_threshold != arg) {
62 m_threshold = arg;
63 Q_EMIT thresholdChanged(arg);
64 }
65 }
66
67private:
68 qreal m_factor;
69 qreal m_threshold;
70};
71
72QT_END_NAMESPACE
73#endif // FRICTIONAFFECTOR_H
74

source code of qtdeclarative/src/particles/qquickfriction_p.h