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 );
}