// Copyright (c) Craftwork Games. All rights reserved.
// Licensed under the MIT license.
// See LICENSE file in the project root for full license information.
using MonoGame.Extended.Particles.Data;
namespace MonoGame.Extended.Particles.Modifiers.Interpolators;
///
/// An interpolator that gradually changes the opacity of particles over their lifetime.
///
///
///
/// The transitions a particle's opacity (alpha) value from the inherited
/// to based on the
/// provided interpolation amount.
///
///
/// Valid opacity values range from 0.0 (completely transparent) to 1.0 (completely opaque).
///
///
public class OpacityInterpolator : Interpolator
{
///
/// Updates a particle's opacity by interpolating between the start and end values.
///
/// The normalized interpolation amount (from 0.0 to 1.0).
/// A pointer to the particle to update.
public override unsafe void Update(float amount, Particle* particle)
{
if (!Enabled) { return; }
particle->Opacity = StartValue + (EndValue - StartValue) * amount;
}
}