///<summary> /// Blend two settings generators using third one as weight ///</summary> ///<param name="source">Source settings</param> ///<param name="other">Noise to blend</param> ///<param name="weight">Blend weight</param> ///<returns></returns> public static Generator Blend(this Generator source, Generator other, Generator weight) { return(new Blend(source, other, weight)); }
///<summary> /// Apply a linear transform to settings. The same as <code>settings.Modify(f=>a*f+b)</code> ///</summary> ///<param name="source">Source settings</param> ///<param name="a">Scale value</param> ///<param name="b">Shift value</param> ///<returns></returns> public static Generator ScaleShift(this Generator source, float a, float b) { return(new Modify(source, f => a * f + b)); }
///<summary> /// Roate settings (<see cref="CoherentNoise.Generation.Displacement.Rotate"/>) ///</summary> ///<param name="source">Noise source</param> ///<param name="x">Angle around X axis</param> ///<param name="y">Angle around Y axis</param> ///<param name="z">Angle around Z axis</param> ///<returns></returns> public static Generator Rotate(this Generator source, float x, float y, float z) { return(new Rotate(source, x, y, z)); }
/// <summary> /// Apply gain to settings /// </summary> /// <param name="source">Source settings</param> /// <param name="g">Gain value</param> /// <returns></returns> public static Generator Gain(this Generator source, float g) { return(new Gain(source, g)); }
/// <summary> /// Apply bias to settings /// </summary> /// <param name="source">Source settings</param> /// <param name="b">Bias value</param> /// <returns></returns> public static Generator Bias(this Generator source, float b) { return(new Bias(source, b)); }
///<summary> /// Binarize settings ///</summary> ///<param name="source">Source settings</param> ///<param name="treshold">Treshold value</param> ///<returns></returns> public static Generator Binarize(this Generator source, float treshold) { return(new Binarize(source, treshold)); }
///<summary> /// Multiply settings by AnimationCurve value ///</summary> ///<param name="source">Source settings</param> ///<param name="curve">Curve</param> ///<returns></returns> public static Generator Curve(this Generator source, AnimationCurve curve) { return(new Curve(source, curve)); }
///<summary> /// Apply modification function to settings ///</summary> ///<param name="source">Source settings</param> ///<param name="modifier">Function to apply</param> ///<returns></returns> public static Generator Modify(this Generator source, Func <float, float> modifier) { return(new Modify(source, modifier)); }