void PUParticle3D::initForEmission() { eventFlags = 0; timeFraction = 0.0f; /* Note, that this flag must only be set as soon as the particle is emitted. As soon as the particle has been moved once, the flag must be removed again. */ addEventFlags(PUParticle3D::PEF_EMITTED); // Reset freeze flag freezed = false; for (auto it : behaviours) { it->initParticleForEmission(this); } }
//----------------------------------------------------------------------- void Particle::_initForEmission(void) { mEventFlags = 0; timeFraction = 0.0f; /* Note, that this flag must only be set as soon as the particle is emitted. As soon as the particle has been moved once, the flag must be removed again. */ addEventFlags(Particle::PEF_EMITTED); // Reset freeze flag mFreezed = false; // Iterate through all Behaviour objects that are registered at the particle. if (mBehaviours.empty()) return; ParticleBehaviourIterator it; ParticleBehaviourIterator itEnd = mBehaviours.end(); for (it = mBehaviours.begin(); it != itEnd; ++it) { (*it)->_initParticleForEmission(this); } }