Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qquicktrailemitter_p.h
Go to the documentation of this file.
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 FOLLOWEMITTER_H
5#define FOLLOWEMITTER_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//
19
21
22class Q_QUICKPARTICLES_EXPORT QQuickTrailEmitter : public QQuickParticleEmitter
23{
25 Q_PROPERTY(QString follow READ follow WRITE setFollow NOTIFY followChanged)
26 Q_PROPERTY(int emitRatePerParticle READ particlesPerParticlePerSecond WRITE setParticlesPerParticlePerSecond NOTIFY particlesPerParticlePerSecondChanged)
27
28 Q_PROPERTY(QQuickParticleExtruder* emitShape READ emissonShape WRITE setEmissionShape NOTIFY emissionShapeChanged)
29 Q_PROPERTY(qreal emitHeight READ emitterYVariation WRITE setEmitterYVariation NOTIFY emitterYVariationChanged)
30 Q_PROPERTY(qreal emitWidth READ emitterXVariation WRITE setEmitterXVariation NOTIFY emitterXVariationChanged)
31 QML_NAMED_ELEMENT(TrailEmitter)
33
34public:
35 enum EmitSize {
36 ParticleSize = -2//Anything less than 0 will do
37 };
38 Q_ENUM(EmitSize)
39 explicit QQuickTrailEmitter(QQuickItem *parent = nullptr);
40 void emitWindow(int timeStamp) override;
41 void reset() override;
42
44 {
45 return m_particlesPerParticlePerSecond;
46 }
47
49 {
50 return m_emitterXVariation;
51 }
52
54 {
55 return m_emitterYVariation;
56 }
57
59 {
60 return m_follow;
61 }
62
64 {
65 return m_emissionExtruder;
66 }
67
70 const QList<QQuickV4ParticleData> &particles,
71 const QQuickV4ParticleData &followed);
72
74
76
78
80
82
83public Q_SLOTS:
84
86 {
87 if (m_particlesPerParticlePerSecond != arg) {
88 m_particlesPerParticlePerSecond = arg;
89 Q_EMIT particlesPerParticlePerSecondChanged(arg);
90 }
91 }
93 {
94 if (m_emitterXVariation != arg) {
95 m_emitterXVariation = arg;
96 Q_EMIT emitterXVariationChanged(arg);
97 }
98 }
99
101 {
102 if (m_emitterYVariation != arg) {
103 m_emitterYVariation = arg;
104 Q_EMIT emitterYVariationChanged(arg);
105 }
106 }
107
108 void setFollow(const QString &arg)
109 {
110 if (m_follow != arg) {
111 m_follow = arg;
112 Q_EMIT followChanged(arg);
113 }
114 }
115
117 {
118 if (m_emissionExtruder != arg) {
119 m_emissionExtruder = arg;
120 Q_EMIT emissionShapeChanged(arg);
121 }
122 }
123
124private Q_SLOTS:
125 void recalcParticlesPerSecond();
126
127private:
128 QVector<qreal> m_lastEmission;
129 int m_particlesPerParticlePerSecond;
130 qreal m_lastTimeStamp;
131 qreal m_emitterXVariation;
132 qreal m_emitterYVariation;
133 QString m_follow;
134 int m_followCount;
135 QQuickParticleExtruder* m_emissionExtruder;
136 QQuickParticleExtruder* m_defaultEmissionExtruder;
137 bool isEmitFollowConnected();
138};
139
141#endif // FOLLOWEMITTER_H
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
Definition qquickitem.h:63
void followChanged(const QString &arg)
void emissionShapeChanged(QQuickParticleExtruder *arg)
void emitFollowParticles(const QList< QQuickV4ParticleData > &particles, const QQuickV4ParticleData &followed)
QQuickParticleExtruder * emissonShape() const
void setFollow(const QString &arg)
void setEmitterXVariation(qreal arg)
void setParticlesPerParticlePerSecond(int arg)
void emitterXVariationChanged(qreal arg)
void setEmitterYVariation(qreal arg)
qreal emitterYVariation() const
int particlesPerParticlePerSecond() const
qreal emitterXVariation() const
void setEmissionShape(QQuickParticleExtruder *arg)
void emitterYVariationChanged(qreal arg)
void particlesPerParticlePerSecondChanged(int arg)
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:129
Combined button and popup list for selecting options.
GLboolean reset
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
SSL_CTX int void * arg
#define Q_ENUM(x)
#define Q_PROPERTY(...)
#define Q_OBJECT
#define Q_EMIT
#define Q_SLOTS
#define Q_SIGNALS
double qreal
Definition qtypes.h:187