aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/particles/qsgwander_p.h
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2011-06-07 19:39:38 +1000
committerAlan Alpert <alan.alpert@nokia.com>2011-06-07 19:43:41 +1000
commit984f21f18d1a3981e7363df467ff2e24e69aa847 (patch)
treedb4665cbc1591a77f988b0b4f8925fe5636f5672 /src/declarative/particles/qsgwander_p.h
parent21d0c6ef9a7df3e5fa69ff344e9dee2d2159c43c (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.h29
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