diff options
Diffstat (limited to 'src/declarative/particles/qsgparticleemitter_p.h')
-rw-r--r-- | src/declarative/particles/qsgparticleemitter_p.h | 193 |
1 files changed, 91 insertions, 102 deletions
diff --git a/src/declarative/particles/qsgparticleemitter_p.h b/src/declarative/particles/qsgparticleemitter_p.h index 2c75fbfe22..8ed7ee7053 100644 --- a/src/declarative/particles/qsgparticleemitter_p.h +++ b/src/declarative/particles/qsgparticleemitter_p.h @@ -46,7 +46,7 @@ #include <QDebug> #include "qsgparticlesystem_p.h" #include "qsgparticleextruder_p.h" -#include "qsgstochasticdirection_p.h" +#include "qsgdirection_p.h" #include <QList> #include <QPair> @@ -63,31 +63,35 @@ class QSGParticleEmitter : public QSGItem Q_PROPERTY(QSGParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) Q_PROPERTY(QString particle READ particle WRITE setParticle NOTIFY particleChanged) Q_PROPERTY(QSGParticleExtruder* shape READ extruder WRITE setExtruder NOTIFY extruderChanged) - Q_PROPERTY(bool emitting READ emitting WRITE setEmitting NOTIFY emittingChanged) + Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged) Q_PROPERTY(int startTime READ startTime WRITE setStartTime NOTIFY startTimeChanged) - Q_PROPERTY(bool noCap READ overwrite WRITE setOverWrite NOTIFY overwriteChanged) Q_PROPERTY(qreal emitRate READ particlesPerSecond WRITE setParticlesPerSecond NOTIFY particlesPerSecondChanged) Q_PROPERTY(int lifeSpan READ particleDuration WRITE setParticleDuration NOTIFY particleDurationChanged) Q_PROPERTY(int lifeSpanVariation READ particleDurationVariation WRITE setParticleDurationVariation NOTIFY particleDurationVariationChanged) - Q_PROPERTY(int emitCap READ maxParticleCount WRITE setMaxParticleCount NOTIFY maxParticleCountChanged) + Q_PROPERTY(int maximumEmitted READ maxParticleCount WRITE setMaxParticleCount NOTIFY maximumEmittedChanged) Q_PROPERTY(qreal size READ particleSize WRITE setParticleSize NOTIFY particleSizeChanged) Q_PROPERTY(qreal endSize READ particleEndSize WRITE setParticleEndSize NOTIFY particleEndSizeChanged) Q_PROPERTY(qreal sizeVariation READ particleSizeVariation WRITE setParticleSizeVariation NOTIFY particleSizeVariationChanged) - Q_PROPERTY(QSGStochasticDirection *speed READ speed WRITE setSpeed NOTIFY speedChanged) - Q_PROPERTY(QSGStochasticDirection *acceleration READ acceleration WRITE setAcceleration NOTIFY accelerationChanged) + Q_PROPERTY(QSGDirection *speed READ speed WRITE setSpeed NOTIFY speedChanged) + Q_PROPERTY(QSGDirection *acceleration READ acceleration WRITE setAcceleration NOTIFY accelerationChanged) Q_PROPERTY(qreal speedFromMovement READ speedFromMovement WRITE setSpeedFromMovement NOTIFY speedFromMovementChanged) + Q_ENUMS(Lifetime) public: explicit QSGParticleEmitter(QSGItem *parent = 0); virtual ~QSGParticleEmitter(); virtual void emitWindow(int timeStamp); - bool emitting() const + enum Lifetime { + InfiniteLife = QSGParticleSystem::maxLife + }; + + bool enabled() const { - return m_emitting; + return m_enabled; } qreal particlesPerSecond() const @@ -122,7 +126,7 @@ signals: void emitParticle(QDeclarativeV8Handle particle); void particlesPerSecondChanged(qreal); void particleDurationChanged(int); - void emittingChanged(bool); + void enabledChanged(bool); void systemChanged(QSGParticleSystem* arg); @@ -138,25 +142,23 @@ signals: void particleSizeVariationChanged(qreal arg); - void speedChanged(QSGStochasticDirection * arg); + void speedChanged(QSGDirection * arg); - void accelerationChanged(QSGStochasticDirection * arg); + void accelerationChanged(QSGDirection * arg); - void maxParticleCountChanged(int arg); + void maximumEmittedChanged(int arg); void particleCountChanged(); void speedFromMovementChanged(); void startTimeChanged(int arg); - void overwriteChanged(bool arg); - public slots: void pulse(qreal seconds); void burst(int num); void burst(int num, qreal x, qreal y); - void setEmitting(bool arg); + void setEnabled(bool arg); void setParticlesPerSecond(qreal arg) { @@ -174,100 +176,92 @@ public slots: } } - void setSystem(QSGParticleSystem* arg) + void setSystem(QSGParticleSystem* arg) { if (m_system != arg) { m_system = arg; m_system->registerParticleEmitter(this); emit systemChanged(arg); } - } - - void setParticle(QString arg) - { - if (m_particle != arg) { - m_particle = arg; - emit particleChanged(arg); - } - } + } - void setParticleDurationVariation(int arg) - { - if (m_particleDurationVariation != arg) { - m_particleDurationVariation = arg; - emit particleDurationVariationChanged(arg); - } - } - void setExtruder(QSGParticleExtruder* arg) - { - if (m_extruder != arg) { - m_extruder = arg; - emit extruderChanged(arg); - } - } + void setParticle(QString arg) + { + if (m_particle != arg) { + m_particle = arg; + emit particleChanged(arg); + } + } - void setParticleSize(qreal arg) - { - if (m_particleSize != arg) { - m_particleSize = arg; - emit particleSizeChanged(arg); - } - } + void setParticleDurationVariation(int arg) + { + if (m_particleDurationVariation != arg) { + m_particleDurationVariation = arg; + emit particleDurationVariationChanged(arg); + } + } + void setExtruder(QSGParticleExtruder* arg) + { + if (m_extruder != arg) { + m_extruder = arg; + emit extruderChanged(arg); + } + } - void setParticleEndSize(qreal arg) - { - if (m_particleEndSize != arg) { - m_particleEndSize = arg; - emit particleEndSizeChanged(arg); - } - } + void setParticleSize(qreal arg) + { + if (m_particleSize != arg) { + m_particleSize = arg; + emit particleSizeChanged(arg); + } + } - void setParticleSizeVariation(qreal arg) - { - if (m_particleSizeVariation != arg) { - m_particleSizeVariation = arg; - emit particleSizeVariationChanged(arg); - } - } + void setParticleEndSize(qreal arg) + { + if (m_particleEndSize != arg) { + m_particleEndSize = arg; + emit particleEndSizeChanged(arg); + } + } - void setSpeed(QSGStochasticDirection * arg) - { - if (m_speed != arg) { - m_speed = arg; - emit speedChanged(arg); - } - } + void setParticleSizeVariation(qreal arg) + { + if (m_particleSizeVariation != arg) { + m_particleSizeVariation = arg; + emit particleSizeVariationChanged(arg); + } + } - void setAcceleration(QSGStochasticDirection * arg) - { - if (m_acceleration != arg) { - m_acceleration = arg; - emit accelerationChanged(arg); - } - } + void setSpeed(QSGDirection * arg) + { + if (m_speed != arg) { + m_speed = arg; + emit speedChanged(arg); + } + } - void setMaxParticleCount(int arg); + void setAcceleration(QSGDirection * arg) + { + if (m_acceleration != arg) { + m_acceleration = arg; + emit accelerationChanged(arg); + } + } - void setStartTime(int arg) - { - if (m_startTime != arg) { - m_startTime = arg; - emit startTimeChanged(arg); - } - } + void setMaxParticleCount(int arg); - void setOverWrite(bool arg) -{ - if (m_overwrite != arg) { - m_overwrite = arg; -emit overwriteChanged(arg); -} -} + void setStartTime(int arg) + { + if (m_startTime != arg) { + m_startTime = arg; + emit startTimeChanged(arg); + } + } + virtual void reset(); public: int particleCount() const; - virtual void reset(){;} QSGParticleExtruder* extruder() const { return m_extruder; @@ -288,12 +282,12 @@ public: return m_particleSizeVariation; } - QSGStochasticDirection * speed() const + QSGDirection * speed() const { return m_speed; } - QSGStochasticDirection * acceleration() const + QSGDirection * acceleration() const { return m_acceleration; } @@ -308,23 +302,18 @@ public: return m_startTime; } - bool overwrite() const - { - return m_overwrite; - } - protected: qreal m_particlesPerSecond; int m_particleDuration; int m_particleDurationVariation; - bool m_emitting; + bool m_enabled; QSGParticleSystem* m_system; QString m_particle; QSGParticleExtruder* m_extruder; QSGParticleExtruder* m_defaultExtruder; QSGParticleExtruder* effectiveExtruder(); - QSGStochasticDirection * m_speed; - QSGStochasticDirection * m_acceleration; + QSGDirection * m_speed; + QSGDirection * m_acceleration; qreal m_particleSize; qreal m_particleEndSize; qreal m_particleSizeVariation; @@ -340,7 +329,7 @@ protected: //Used in default implementation, but might be useful qreal m_speed_from_movement; - int m_particle_count; + int m_emitCap; bool m_reset_last; qreal m_last_timestamp; qreal m_last_emission; @@ -351,7 +340,7 @@ protected: bool isEmitConnected(); private: - QSGStochasticDirection m_nullVector; + QSGDirection m_nullVector; }; |