4#ifndef PARTICLEEMITTER_H
5#define PARTICLEEMITTER_H
18#include <QtQuick/QQuickItem>
38 Q_PROPERTY(
qreal emitRate READ particlesPerSecond WRITE setParticlesPerSecond NOTIFY particlesPerSecondChanged FINAL)
39 Q_PROPERTY(
int lifeSpan READ particleDuration WRITE setParticleDuration NOTIFY particleDurationChanged FINAL)
40 Q_PROPERTY(
int lifeSpanVariation READ particleDurationVariation WRITE setParticleDurationVariation NOTIFY particleDurationVariationChanged FINAL)
41 Q_PROPERTY(
int maximumEmitted READ maxParticleCount WRITE setMaxParticleCount NOTIFY maximumEmittedChanged FINAL)
43 Q_PROPERTY(
qreal size READ particleSize WRITE setParticleSize NOTIFY particleSizeChanged FINAL)
44 Q_PROPERTY(
qreal endSize READ particleEndSize WRITE setParticleEndSize NOTIFY particleEndSizeChanged FINAL)
45 Q_PROPERTY(
qreal sizeVariation READ particleSizeVariation WRITE setParticleSizeVariation NOTIFY particleSizeVariationChanged FINAL)
49 Q_PROPERTY(
qreal velocityFromMovement READ velocityFromMovement WRITE setVelocityFromMovement NOTIFY velocityFromMovementChanged FINAL)
56 virtual void emitWindow(
int timeStamp);
70 return m_particlesPerSecond;
75 return m_particleDuration;
90 if (m_groupIdNeedRecalculation)
97 return m_particleDurationVariation;
101 void setVelocityFromMovement(
qreal s);
135 void pulse(
int milliseconds);
143 if (m_particlesPerSecond !=
arg) {
144 m_particlesPerSecond =
arg;
151 if (m_particleDuration !=
arg) {
152 m_particleDuration =
arg;
159 if (m_system !=
arg) {
161 m_groupIdNeedRecalculation =
true;
163 m_system->registerParticleEmitter(
this);
170 if (m_group !=
arg) {
172 m_groupIdNeedRecalculation =
true;
179 if (m_particleDurationVariation !=
arg) {
180 m_particleDurationVariation =
arg;
181 Q_EMIT particleDurationVariationChanged(
arg);
186 if (m_extruder !=
arg) {
194 if (m_particleSize !=
arg) {
195 m_particleSize =
arg;
202 if (m_particleEndSize !=
arg) {
203 m_particleEndSize =
arg;
210 if (m_particleSizeVariation !=
arg) {
211 m_particleSizeVariation =
arg;
212 Q_EMIT particleSizeVariationChanged(
arg);
218 if (m_velocity !=
arg) {
226 if (m_acceleration !=
arg) {
227 m_acceleration =
arg;
232 void setMaxParticleCount(
int arg);
236 if (m_startTime !=
arg) {
242 virtual void reset();
246 if (m_maxParticleCount >= 0)
247 return m_maxParticleCount;
248 return m_particlesPerSecond*((m_particleDuration+m_particleDurationVariation)/1000.0);
258 return m_particleSize;
263 return m_particleEndSize;
268 return m_particleSizeVariation;
278 return m_acceleration;
283 return m_maxParticleCount;
291 void reclaculateGroupId()
const;
326 bool isEmitConnected();
330 mutable bool m_groupIdNeedRecalculation;
The QJSValue class acts as a container for Qt/JavaScript data types.
\inmodule QtCore\reentrant
The QQuickItem class provides the most basic of all visual items in \l {Qt Quick}.
void componentComplete() override
\reimp Derived classes should call the base class method before adding their own actions to perform a...
int particleCount() const
void groupChanged(const QString &arg)
QQuickDirection * velocity() const
QQuickDirection * acceleration() const
QQuickParticleExtruder * m_extruder
void setSystem(QQuickParticleSystem *arg)
void emitParticles(const QJSValue &particles)
QQuickDirection * m_velocity
void setVelocity(QQuickDirection *arg)
void startTimeChanged(int arg)
QQuickParticleExtruder * m_defaultExtruder
QQuickParticleSystem * m_system
void setParticleSizeVariation(qreal arg)
void setParticleEndSize(qreal arg)
QQuickParticleExtruder * extruder() const
void enabledChanged(bool)
void extruderChanged(QQuickParticleExtruder *arg)
void particleDurationVariationChanged(int arg)
void setParticleDurationVariation(int arg)
qreal m_velocity_from_movement
qreal velocityFromMovement() const
qreal m_particleSizeVariation
void accelerationChanged(QQuickDirection *arg)
int m_particleDurationVariation
void maximumEmittedChanged(int arg)
void setParticleDuration(int arg)
void setParticleSize(qreal arg)
QQuickDirection * m_acceleration
qreal particleEndSize() const
void particleEndSizeChanged(qreal arg)
void setAcceleration(QQuickDirection *arg)
void particleDurationChanged(int)
void setParticlesPerSecond(qreal arg)
int particleDurationVariation() const
QList< QPair< int, QPointF > > m_burstQueue
void velocityFromMovementChanged()
void velocityChanged(QQuickDirection *arg)
void particleSizeChanged(qreal arg)
qreal particleSizeVariation() const
void particleSizeVariationChanged(qreal arg)
QQuickParticleSystem * system() const
int maxParticleCount() const
int particleDuration() const
qreal m_particlesPerSecond
void particlesPerSecondChanged(qreal)
qreal particlesPerSecond() const
void setExtruder(QQuickParticleExtruder *arg)
void setGroup(const QString &arg)
void particleCountChanged()
qreal particleSize() const
void setStartTime(int arg)
void systemChanged(QQuickParticleSystem *arg)
QPointF m_last_last_emitter
QQuickParticleGroupData::ID groupId() const
\macro QT_RESTRICTED_CAST_FROM_ASCII
Combined button and popup list for selecting options.
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLenum GLenum GLsizei const GLuint GLboolean enabled
#define QML_NAMED_ELEMENT(NAME)
#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
IUIAutomationTreeWalker __RPC__deref_out_opt IUIAutomationElement ** parent