diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2011-06-07 19:39:38 +1000 |
---|---|---|
committer | Alan Alpert <alan.alpert@nokia.com> | 2011-06-07 19:43:41 +1000 |
commit | 984f21f18d1a3981e7363df467ff2e24e69aa847 (patch) | |
tree | db4665cbc1591a77f988b0b4f8925fe5636f5672 /src/declarative/particles/qsgwander_p.h | |
parent | 21d0c6ef9a7df3e5fa69ff344e9dee2d2159c43c (diff) |
Immense Particles Refactor Part B
Examples work again. Also augmented Wander and PointAttractor with
physics modes.
Diffstat (limited to 'src/declarative/particles/qsgwander_p.h')
-rw-r--r-- | src/declarative/particles/qsgwander_p.h | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/declarative/particles/qsgwander_p.h b/src/declarative/particles/qsgwander_p.h index 45c8ca8b20..783efc8636 100644 --- a/src/declarative/particles/qsgwander_p.h +++ b/src/declarative/particles/qsgwander_p.h @@ -63,11 +63,19 @@ struct WanderData{ class QSGWanderAffector : public QSGParticleAffector { Q_OBJECT + Q_PROPERTY(qreal pace READ pace WRITE setPace NOTIFY paceChanged) Q_PROPERTY(qreal xVariance READ xVariance WRITE setXVariance NOTIFY xVarianceChanged) Q_PROPERTY(qreal yVariance READ yVariance WRITE setYVariance NOTIFY yVarianceChanged) - Q_PROPERTY(qreal pace READ pace WRITE setPace NOTIFY paceChanged) + Q_PROPERTY(PhysicsAffects physics READ physics WRITE setPhysics NOTIFY physicsChanged) + Q_ENUMS(PhysicsAffects) public: + enum PhysicsAffects { + Position, + Velocity, + Acceleration + }; + explicit QSGWanderAffector(QSGItem *parent = 0); ~QSGWanderAffector(); virtual void reset(int systemIdx); @@ -86,6 +94,12 @@ public: { return m_pace; } + + PhysicsAffects physics() const + { + return m_physics; + } + protected: virtual bool affectParticle(QSGParticleData *d, qreal dt); signals: @@ -96,6 +110,9 @@ signals: void paceChanged(qreal arg); + + void physicsChanged(PhysicsAffects arg); + public slots: void setXVariance(qreal arg) { @@ -121,12 +138,22 @@ void setPace(qreal arg) } } + +void setPhysics(PhysicsAffects arg) +{ + if (m_physics != arg) { + m_physics = arg; + emit physicsChanged(arg); + } +} + private: WanderData* getData(int idx); QHash<int, WanderData*> m_wanderData; qreal m_xVariance; qreal m_yVariance; qreal m_pace; + PhysicsAffects m_physics; }; QT_END_NAMESPACE |