private void RefreshCurve() { FloatCurve fCurve = new FloatCurve(); fCurve.Keyframes.Clear(); foreach (var colorKey in this.Curve.Keyframes) { var color = colorKey.Value; var intensity = (color.R + color.G + color.B) / (3 * 255f); fCurve.AddKey(colorKey.Lerp, MathHelper.Lerp(this.MinValue, this.MaxValue, intensity)); } switch (this.ParticlePropertyTarget) { case CurveEnum.Size: this.particles.SizeAnimated = true; this.particles.SizeOverLife = fCurve; break; case CurveEnum.Velocity: this.particles.VelocityAnimated = true; this.particles.VelocityOverLifeX = fCurve; this.particles.VelocityOverLifeY = fCurve; this.particles.VelocityOverLifeZ = fCurve; break; case CurveEnum.VelocityX: this.particles.VelocityAnimated = true; this.particles.VelocityOverLifeX = fCurve; break; case CurveEnum.VeloxityY: this.particles.VelocityAnimated = true; this.particles.VelocityOverLifeY = fCurve; break; case CurveEnum.VelocityZ: this.particles.VelocityAnimated = true; this.particles.VelocityOverLifeZ = fCurve; break; } }