private void InitializeSwayers()
        {
            _swayers = new SineSwayParticle[Count];

            for (int i = 0; i < Count; i++)
            {
                _swayers[i] = new SineSwayParticle();
                InitializeSwayer(_swayers[i]);
            }
        }
        private void InitializeSwayer(SineSwayParticle particle)
        {
            particle.ParticleSize = _rand.Next(MinSize, MaxSize);

            particle.Frequency        = MinFrequency + (_rand.NextDouble() * (MaxFrequency - MinFrequency));
            particle.Shift            = MinShift + (_rand.NextDouble() * (MaxShift - MinShift));
            particle.ParticlePosition = MinPosition + (_rand.NextDouble() * (MaxPosition - MinPosition));

            particle.X = _rand.Next(MinX, MaxX);
            particle.Y = _rand.Next(MinY, MaxY);

            particle.Width  = _rand.Next(MinWidth, MaxWidth);
            particle.Height = _rand.Next(MinHeight, MaxHeight);

            particle.StepSize         = MinStepSize + (_rand.NextDouble() * (MaxStepSize - MinStepSize));
            particle.RotationStepSize = 0.75f;

            if (RandomizeTextures)
            {
                particle.ParticleType = _rand.Next(0, 5);
            }
        }