/// <summary>
 /// Copy Constructor.
 /// </summary>
 /// <param name="system">The particle system to copy.</param>
 public ParticleSystem(ParticleSystem system)
 {
     if (system == null)
     {
         throw new ArgumentNullException("system");
     }
     m_Manipulators = new ParticleManipulatorCollection(system.Manipulators);
     m_Particles    = new ParticleCollection();
     m_Particles.Add(system);
 }
 /// <summary>
 /// Adds a collection of particles from a particle collection.
 /// </summary>
 /// <param name="collection">The collection containing all the particles.</param>
 public void Add(ParticleCollection collection)
 {
     if (collection == null)
     {
         throw new ArgumentNullException("collection");
     }
     foreach (BaseParticle b in collection)
     {
         Add(b);
     }
 }
 /// <summary>
 /// Creates an empty particle system with no manipulators.
 /// </summary>
 public ParticleSystem()
 {
     m_Manipulators = new ParticleManipulatorCollection();
     m_Particles    = new ParticleCollection();
 }
 /// <summary>
 /// Creates a particle system with a collection of particles already in it.
 /// </summary>
 /// <param name="particles">The particles to use with this system.</param>
 public ParticleSystem(ParticleCollection particles)
 {
     m_Manipulators = new ParticleManipulatorCollection();
     m_Particles    = new ParticleCollection();
     m_Particles.Add(particles);
 }
 /// <summary>
 /// Creates an empty particle system with one particle manipulator.
 /// </summary>
 /// <param name="manipulator">The manipulator to use with this particle system.</param>
 public ParticleSystem(IParticleManipulator manipulator)
 {
     m_Manipulators = new ParticleManipulatorCollection();
     m_Manipulators.Add(manipulator);
     m_Particles = new ParticleCollection();
 }