class ParticleEvolver

Inherits: ParticleModule

Updates properties of all active particles in a particle system in some way.

Public

Constructors

ParticleEvolver

ParticleEvolver() = default

Methods

~ParticleEvolver

virtual ~ParticleEvolver() noexcept = default

GetProperties

virtual const ParticleEvolverProperties &GetProperties() const = 0

Returns a set of properties that describe this evolver type.

Protected

Methods

Evolve

virtual void Evolve(Random &random, const ParticleSystemState &state, ParticleSet &set, u32 startIdx, u32 count, bool spacing, float spacingOffset) const = 0

Updates properties of particles in the provided range according to the ruleset of the evolver.

random
Utility class for generating random numbers.
state
Particle system state for this frame.
set
Set containing the particles to update.
startIdx
Index of the first particle in to update.
count
Number of particles to update, starting from .
spacing
When false all particles will use the same time-step as provided by . If true the time-step will be divided by so particles are uniformly distributed over the time-step.
spacingOffset
Extra offset that controls the starting position of the first particle when calculating spacing. Should be in range [0, 1). 0 = beginning of the current time step, 1 = start of next particle.