/// <summary>
        /// Adds the and initialize particle system.
        /// </summary>
        /// <param name="particleSystem">The particle system.</param>
        public override void AddAndInitializeParticleSystem(IParticleSystem particleSystem)
        {
            System.Diagnostics.Debug.Assert(particleSystem != null, "Particle System cannot be null");            

            if(ParticleSystem.ContainsKey(particleSystem.Name))
                ActiveLogger.LogMessage("Particle System already exist, overwriting", LogLevel.Warning);
            ParticleSystem[particleSystem.Name] = particleSystem as DPFSParticleSystem;
            if(particleSystem is DPFSParticleSystem)
            {
                DPFSParticleSystem ps = particleSystem as DPFSParticleSystem;                
                ps.IDPSFParticleSystem.AutoInitialize(GraphicFactory.device, GraphicFactory.contentManager.ContentManager, GraphicFactory.SpriteBatch);
                manager.AddParticleSystem(ps.IDPSFParticleSystem);            
            }
            else
            {
                ActiveLogger.LogMessage("You can only add DPFS particles in this manager, operation ignored", LogLevel.RecoverableError);
            }
        }
 /// <summary>
 /// Removes the particle system.
 /// </summary>
 /// <param name="particleSystem">The particle system.</param>
 public override void RemoveParticleSystem(IParticleSystem particleSystem)
 {
     System.Diagnostics.Debug.Assert(particleSystem != null, "Particle System cannot be null");
     if (particleSystem is DPFSParticleSystem)
     {
         if (ParticleSystem.ContainsKey(particleSystem.Name))
         {
             manager.RemoveParticleSystem((particleSystem as DPFSParticleSystem).IDPSFParticleSystem);
         }
         else
         {
             ActiveLogger.LogMessage("Particle System do not Exist", LogLevel.Warning);
         }
     }
     else
     {
         ActiveLogger.LogMessage("You can only remove DPFS particles in this manager, operation ignored", LogLevel.RecoverableError);
     }
 }
        /// <summary>
        /// Adds the and initialize particle system.
        /// </summary>
        /// <param name="particleSystem">The particle system.</param>
        public override void AddAndInitializeParticleSystem(IParticleSystem particleSystem)
        {
            System.Diagnostics.Debug.Assert(particleSystem != null, "Particle System cannot be null");

            if (ParticleSystem.ContainsKey(particleSystem.Name))
            {
                ActiveLogger.LogMessage("Particle System already exist, overwriting", LogLevel.Warning);
            }
            ParticleSystem[particleSystem.Name] = particleSystem as DPFSParticleSystem;
            if (particleSystem is DPFSParticleSystem)
            {
                DPFSParticleSystem ps = particleSystem as DPFSParticleSystem;
                ps.IDPSFParticleSystem.AutoInitialize(GraphicFactory.device, GraphicFactory.contentManager.ContentManager, GraphicFactory.SpriteBatch);
                manager.AddParticleSystem(ps.IDPSFParticleSystem);
            }
            else
            {
                ActiveLogger.LogMessage("You can only add DPFS particles in this manager, operation ignored", LogLevel.RecoverableError);
            }
        }
        /// <summary>
        /// Removes the particle system.
        /// </summary>
        /// <param name="particleSystem">The particle system.</param>
        public override void RemoveParticleSystem(IParticleSystem particleSystem)
        {
            System.Diagnostics.Debug.Assert(particleSystem != null, "Particle System cannot be null");            
            if (particleSystem is DPFSParticleSystem)
            {
                if (ParticleSystem.ContainsKey(particleSystem.Name))
                    manager.RemoveParticleSystem((particleSystem as DPFSParticleSystem).IDPSFParticleSystem);
                else
                {
                    ActiveLogger.LogMessage("Particle System do not Exist",LogLevel.Warning);
                }
            }
            else
            {
                ActiveLogger.LogMessage("You can only remove DPFS particles in this manager, operation ignored", LogLevel.RecoverableError);
            }

        }
 /// <summary>
 /// Removes the particle system.
 /// </summary>
 /// <param name="particleSystem">The particle system.</param>
 public abstract void RemoveParticleSystem(IParticleSystem particleSystem);
 /// <summary>
 /// Adds the and initialize particle system.
 /// </summary>
 /// <param name="particleSystem">The particle system.</param>
 public abstract void AddAndInitializeParticleSystem(IParticleSystem particleSystem);
 /// <summary>
 /// Removes the particle system.
 /// </summary>
 /// <param name="particleSystem">The particle system.</param>
 public abstract void RemoveParticleSystem(IParticleSystem particleSystem);
 /// <summary>
 /// Adds the and initialize particle system.
 /// </summary>
 /// <param name="particleSystem">The particle system.</param>
 public abstract void AddAndInitializeParticleSystem(IParticleSystem particleSystem);