//public CurveCubicSpline1F curve; public void GenerateValue(Random random, out ColorValue result) { switch (Type) { case Component_ParticleEmitter.ColorValueProperty.TypeEnum.Constant: result = Constant; break; case Component_ParticleEmitter.ColorValueProperty.TypeEnum.Range: ColorValue.Lerp(ref Range.Minimum, ref Range.Maximum, random.NextFloat(), out result); break; //case Component_ParticleEmitter.ColorValuePropertys.TypeEnum.Curve: // if( Curve.Points.Count != 0 ) // { // var maxValue = Curve.Points[ Curve.Points.Count - 1 ].Time; // return (float)Curve.CalculateValueByTime( random.Next( maxValue ) ); // } // break; default: result = ColorValue.Zero; break; } }
public static ColorValuePowered Lerp(ColorValuePowered v1, ColorValuePowered v2, float amount) { ColorValuePowered result; ColorValue.Lerp(ref v1.Color, ref v2.Color, amount, out result.Color); result.Power = v1.Power + ((v2.Power - v1.Power) * amount); return(result); }