// 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 only the hue component of particle colors over their lifetime. /// /// /// Unlike which changes all HSL components, this interpolator /// affects only the hue component, preserving the particle's existing saturation and lightness values. /// This allows for color cycling effects while maintaining consistent saturation and brightness. /// public class HueInterpolator : Interpolator { /// /// Updates a particle's hue 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; } float h = StartValue + (EndValue - StartValue) * amount; particle->Color[0] = h; } }