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);
		}
	}