Having all of these updaters really does nothing unless certain base values are generated for the particles. Whether it is the initial position of a particle, the range of colors, or the name of a texture that gets attached to our flying little data structures, having that initial data set based on some pre-conceived notion is important. There are quite a few generators we support, not to mention tons of candidates for new generators, and thus new types of particles. Having said that, let us take a look at a couple of basics that we need to get some basic effects going.
The simplest generator we can possibly have in this entire system is a point position. Essentially, it just sets all positions of fed-in particles to a static point in space:
class PointPosition : public BaseGenerator { public: void Generate(Emitter* l_emitter,ParticleContainer* l_particles, size_t l_from, size_t l_to) { auto& positions = l_particles->m_position; ...