public static float InOutQuad(OscillationSettings settings, float time) { float phase = (settings.Frequency * time + settings.Offset) % 1f; float value; if (phase < settings.Ratio) value = TweenUtility.InOutQuad(phase / settings.Ratio); else value = TweenUtility.InOutQuad(1f - (phase - settings.Ratio) / (1f - settings.Ratio)); return settings.Amplitude * (value * 2f - 1f) + settings.Center; }
public static Vector2[] ToPoints(OscillationSettings settings, int definition) { var points = new Vector2[definition]; for (int i = 0; i < definition; i++) { float ratio = (float)i / definition; points[i] = new Vector2(ratio, Oscillate(settings, ratio)); } return(points); }
public static float OutQuad(OscillationSettings settings, float time) { float phase = (settings.Frequency * time + settings.Offset) % 1f; float value; if (phase < settings.Ratio) { value = TweenUtility.OutQuad(phase / settings.Ratio); } else { value = TweenUtility.OutQuad(1f - (phase - settings.Ratio) / (1f - settings.Ratio)); } return(settings.Amplitude * (value * 2f - 1f) + settings.Center); }
public static float Sawtooth(OscillationSettings settings, float time) { return(settings.Amplitude * PMath.Triangle(settings.Frequency * time + settings.Offset, 1f) + settings.Center); }
public static float Sine(OscillationSettings settings, float time) { return(settings.Amplitude * Mathf.Sin(settings.Frequency * 2f * Mathf.PI * time + settings.Offset) + settings.Center); }
public static float Oscillate(OscillationSettings settings, float time) { return(GetWaveFunction(settings.WaveShape)(settings, time)); }
public static AnimationCurve ToCurve(OscillationSettings settings, int definition) { return(new AnimationCurve(ToPoints(settings, definition).Convert(v => new Keyframe(v.x, v.y)))); }
public static float PerlinNoise(OscillationSettings settings, float time) { return(settings.Amplitude * (Mathf.Clamp01(Mathf.PerlinNoise(time * settings.Frequency, settings.Offset)) * 2f - 1f) + settings.Center); }
public static float PerlinNoise(OscillationSettings settings, float time) { return settings.Amplitude * (Mathf.Clamp01(Mathf.PerlinNoise(time * settings.Frequency, settings.Offset)) * 2f - 1f) + settings.Center; }
public static float WhiteNoise(OscillationSettings settings, float time) { return settings.Amplitude * PRandom.Range(-1f, 1f) + settings.Center; }
public static float Triangle(OscillationSettings settings, float time) { return settings.Amplitude * PMath.Triangle(settings.Frequency * time + settings.Offset, settings.Ratio) + settings.Center; }
public static Vector2[] ToPoints(OscillationSettings settings, int definition) { var points = new Vector2[definition]; for (int i = 0; i < definition; i++) { float ratio = (float)i / definition; points[i] = new Vector2(ratio, Oscillate(settings, ratio)); } return points; }
public static AnimationCurve ToCurve(OscillationSettings settings, int definition) { return new AnimationCurve(ToPoints(settings, definition).Convert(v => new Keyframe(v.x, v.y))); }
public static float Sine(OscillationSettings settings, float time) { return settings.Amplitude * Mathf.Sin(settings.Frequency * 2f * Mathf.PI * time + settings.Offset) + settings.Center; }
public static float Square(OscillationSettings settings, float time) { return(settings.Amplitude * PMath.Square(settings.Frequency * time + settings.Offset, settings.Ratio) + settings.Center); }
public static float WhiteNoise(OscillationSettings settings, float time) { return(settings.Amplitude * PRandom.Range(-1f, 1f) + settings.Center); }
public static float Oscillate(OscillationSettings settings, float time) { return GetWaveFunction(settings.WaveShape)(settings, time); }