update method

  1. @override
void update(
  1. ParticleStorage storage,
  2. double dt
)
override

Advances every live particle by dt seconds.

Implementation

@override
void update(ParticleStorage storage, double dt) {
  _time += dt;
  final ox = scroll.x * _time * frequency;
  final oy = scroll.y * _time * frequency;
  final oz = scroll.z * _time * frequency;
  final n = storage.aliveCount;
  for (var i = 0; i < n; i++) {
    final curl = noiseCurl3(
      storage.posX[i] * frequency - ox,
      storage.posY[i] * frequency - oy,
      storage.posZ[i] * frequency - oz,
      seed: seed,
    );
    storage.velX[i] += curl.x * strength * dt;
    storage.velY[i] += curl.y * strength * dt;
    storage.velZ[i] += curl.z * strength * dt;
  }
}