47QQuickWanderAffector::QQuickWanderAffector(QQuickItem *parent) :
48 QQuickParticleAffector(parent), m_xVariance(0), m_yVariance(0), m_pace(0)
49 , m_affectedParameter(Velocity)
85bool QQuickWanderAffector::affectParticle(QQuickParticleData* data, qreal dt)
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114 qreal dx = dt * m_pace * (2 * QRandomGenerator::global()->generateDouble() - 1);
115 qreal dy = dt * m_pace * (2 * QRandomGenerator::global()->generateDouble() - 1);
117 switch (m_affectedParameter){
119 newX = data->curX(m_system) + dx;
120 if (m_xVariance > qAbs(newX) )
122 newY = data->curY(m_system) + dy;
123 if (m_yVariance > qAbs(newY) )
128 newX = data->curVX(m_system) + dx;
129 if (m_xVariance > qAbs(newX))
130 data->setInstantaneousVX(newX, m_system);
131 newY = data->curVY(m_system) + dy;
132 if (m_yVariance > qAbs(newY))
133 data->setInstantaneousVY(newY, m_system);
136 newX = data->ax + dx;
137 if (m_xVariance > qAbs(newX))
138 data->setInstantaneousAX(newX, m_system);
139 newY = data->ay + dy;
140 if (m_yVariance > qAbs(newY))
141 data->setInstantaneousAY(newY, m_system);