public override void UpdateRenderQueue(RenderQueue queue,
                                               List <Particle> currentParticles,
                                               bool cullIndividually)
        {
            billboardSet.CullIndividual = cullIndividually;

            // Update billboard set geometry
            billboardSet.BeginBillboards();
            Billboard bb = new Billboard();

            foreach (Particle p in currentParticles)
            {
                bb.Position = p.Position;
                if (billboardSet.BillboardType == BillboardType.OrientedSelf ||
                    billboardSet.BillboardType == BillboardType.PerpendicularSelf)
                {
                    // Normalise direction vector
                    bb.Direction = p.Direction;
                    bb.Direction.Normalize();
                }
                bb.Color             = p.Color;
                bb.rotationInRadians = p.rotationInRadians;
                bb.HasOwnDimensions  = p.HasOwnDimensions;
                if (bb.HasOwnDimensions)
                {
                    bb.width  = p.Width;
                    bb.height = p.Height;
                }
                billboardSet.InjectBillboard(bb);
            }

            billboardSet.EndBillboards();

            // Update the queue
            billboardSet.UpdateRenderQueue(queue);
        }