//----------------------------------------------------------------------------
        //----------------------------------------------------------------------------
        public virtual void Update(DeltaTime deltaTime)
        {
            if ((m_bActive || !m_bActive && (m_freeParticleList.Count != m_Particles.Count)) && ParticleController != null)
            {
                if (m_bAllowGeneration)
                {
                    //We create new ones
                    GenerateParticles(deltaTime);

                    if (!m_bContinuosEmission)
                    {
                        m_bAllowGeneration = false;
                    }
                }

                ParticleController.UpdateController(deltaTime, this);

                //We update each active particle.
                foreach (IParticle particle in m_Particles)
                {
                    if (particle.Active)
                    {
                        particle.UpdateParticle(deltaTime);
                    }
                }
            }
        }