25 Q_PROPERTY(QString follow READ follow WRITE setFollow NOTIFY followChanged)
26 Q_PROPERTY(
int emitRatePerParticle READ particlesPerParticlePerSecond WRITE setParticlesPerParticlePerSecond NOTIFY particlesPerParticlePerSecondChanged)
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)
32 QML_ADDED_IN_VERSION(2, 0)
39 explicit QQuickTrailEmitter(QQuickItem *parent =
nullptr);
40 void emitWindow(
int timeStamp) override;
41 void reset() override;
43 int particlesPerParticlePerSecond()
const
45 return m_particlesPerParticlePerSecond;
48 qreal emitterXVariation()
const
50 return m_emitterXVariation;
53 qreal emitterYVariation()
const
55 return m_emitterYVariation;
58 QString follow()
const
63 QQuickParticleExtruder* emissonShape()
const
65 return m_emissionExtruder;
69 void emitFollowParticles(
70 const QList<QQuickV4ParticleData> &particles,
71 const QQuickV4ParticleData &followed);
73 void particlesPerParticlePerSecondChanged(
int arg);
75 void emitterXVariationChanged(qreal arg);
77 void emitterYVariationChanged(qreal arg);
79 void followChanged(
const QString &arg);
81 void emissionShapeChanged(QQuickParticleExtruder* arg);
85 void setParticlesPerParticlePerSecond(
int arg)
87 if (m_particlesPerParticlePerSecond != arg) {
88 m_particlesPerParticlePerSecond = arg;
89 Q_EMIT particlesPerParticlePerSecondChanged(arg);
92 void setEmitterXVariation(qreal arg)
94 if (m_emitterXVariation != arg) {
95 m_emitterXVariation = arg;
96 Q_EMIT emitterXVariationChanged(arg);
100 void setEmitterYVariation(qreal arg)
102 if (m_emitterYVariation != arg) {
103 m_emitterYVariation = arg;
104 Q_EMIT emitterYVariationChanged(arg);
108 void setFollow(
const QString &arg)
110 if (m_follow != arg) {
112 Q_EMIT followChanged(arg);
116 void setEmissionShape(QQuickParticleExtruder* arg)
118 if (m_emissionExtruder != arg) {
119 m_emissionExtruder = arg;
120 Q_EMIT emissionShapeChanged(arg);
125 void recalcParticlesPerSecond();
128 QVector<qreal> m_lastEmission;
129 int m_particlesPerParticlePerSecond;
130 qreal m_lastTimeStamp;
131 qreal m_emitterXVariation;
132 qreal m_emitterYVariation;
135 QQuickParticleExtruder* m_emissionExtruder;
136 QQuickParticleExtruder* m_defaultEmissionExtruder;
137 bool isEmitFollowConnected();
Q_INVOKABLE void discard()
QQuickV4ParticleData(QQuickParticleData *datum, QQuickParticleSystem *system)
float currentSize() const
static QT_BEGIN_NAMESPACE int roundedTime(qreal a)
A system which includes particle painter, emitter, and affector types.
#define Q_QUICK_PARTICLE_SYSTEM_ACCESSOR(GETTER, SETTER, NAME)
#define Q_QUICK_PARTICLE_ACCESSOR(TYPE, VARIABLE, NAME)
#define Q_QUICK_PARTICLE_COLOR_ACCESSOR(VAR, NAME)