public static Hermite ( float value1, float tangent1, float value2, float tangent2, float amount ) : float | ||
value1 | float | |
tangent1 | float | |
value2 | float | |
tangent2 | float | |
amount | float | |
return | float |
/// <summary> /// Creates a new <see cref="Vector2"/> that contains hermite spline interpolation. /// </summary> /// <param name="value1">The first position vector.</param> /// <param name="tangent1">The first tangent vector.</param> /// <param name="value2">The second position vector.</param> /// <param name="tangent2">The second tangent vector.</param> /// <param name="amount">Weighting factor.</param> /// <param name="result">The hermite spline interpolation vector as an output parameter.</param> public static void Hermite( ref Vector2 value1, ref Vector2 tangent1, ref Vector2 value2, ref Vector2 tangent2, float amount, out Vector2 result ) { result.X = MathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount); result.Y = MathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount); }
/// <summary> /// Interpolates between two values using a cubic equation. /// </summary> /// <param name="value1">Source value.</param> /// <param name="value2">Source value.</param> /// <param name="amount">Weighting value.</param> /// <returns>Interpolated value.</returns> public static float SmoothStep(float value1, float value2, float amount) { /* It is expected that 0 < amount < 1. * If amount < 0, return value1. * If amount > 1, return value2. */ float result = MathHelper.Clamp(amount, 0f, 1f); result = MathHelper.Hermite(value1, 0f, value2, 0f, result); return(result); }
public static float SmoothStep(float value1, float value2, float amount) { // It is expected that 0 < amount < 1 // If amount < 0, return value1 // If amount > 1, return value2 #if (USE_FARSEER) float result = SilverSpriteMathHelper.Clamp(amount, 0f, 1f); result = SilverSpriteMathHelper.Hermite(value1, 0f, value2, 0f, result); #else float result = MathHelper.Clamp(amount, 0f, 1f); result = MathHelper.Hermite(value1, 0f, value2, 0f, result); #endif return(result); }
public static void Hermite( ref Vector4 value1, ref Vector4 tangent1, ref Vector4 value2, ref Vector4 tangent2, float amount, out Vector4 result ) { result.W = MathHelper.Hermite(value1.W, tangent1.W, value2.W, tangent2.W, amount); result.X = MathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount); result.Y = MathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount); result.Z = MathHelper.Hermite(value1.Z, tangent1.Z, value2.Z, tangent2.Z, amount); }
public static void Hermite(ref Vector4 value1, ref Vector4 tangent1, ref Vector4 value2, ref Vector4 tangent2, float amount, out Vector4 result) { #if (USE_FARSEER) result.W = SilverSpriteMathHelper.Hermite(value1.W, tangent1.W, value2.W, tangent2.W, amount); result.X = SilverSpriteMathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount); result.Y = SilverSpriteMathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount); result.Z = SilverSpriteMathHelper.Hermite(value1.Z, tangent1.Z, value2.Z, tangent2.Z, amount); #else result.W = MathHelper.Hermite(value1.W, tangent1.W, value2.W, tangent2.W, amount); result.X = MathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount); result.Y = MathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount); result.Z = MathHelper.Hermite(value1.Z, tangent1.Z, value2.Z, tangent2.Z, amount); #endif }
public static void Hermite(ref Vector3 value1, ref Vector3 tangent1, ref Vector3 value2, ref Vector3 tangent2, FP amount, out Vector3 result) { result.X = MathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount); result.Y = MathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount); result.Z = MathHelper.Hermite(value1.Z, tangent1.Z, value2.Z, tangent2.Z, amount); }
public static FP SmoothStep(FP value1, FP value2, FP amount) { FP amount2 = MathHelper.Clamp(amount, 0f, 1f); return(MathHelper.Hermite(value1, 0f, value2, 0f, amount2)); }
public static float SmoothStep(float value1, float value2, float amount) { float amount1 = MathHelper.Clamp(amount, 0.0f, 1f); return(MathHelper.Hermite(value1, 0.0f, value2, 0.0f, amount1)); }
public static Vector2 Hermite(Vector2 value1, Vector2 tangent1, Vector2 value2, Vector2 tangent2, float amount) { value1.X = MathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount); value1.Y = MathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount); return(value1); }
/// <summary> /// Creates a new <see cref="Vector3"/> that contains hermite spline interpolation. /// </summary> /// <param name="value1">The first position vector.</param> /// <param name="tangent1">The first tangent vector.</param> /// <param name="value2">The second position vector.</param> /// <param name="tangent2">The second tangent vector.</param> /// <param name="amount">Weighting factor.</param> /// <returns>The hermite spline interpolation vector.</returns> public static Vector3 Hermite(Vector3 value1, Vector3 tangent1, Vector3 value2, Vector3 tangent2, float amount) { return(new Vector3(MathHelper.Hermite(value1.X, tangent1.X, value2.X, tangent2.X, amount), MathHelper.Hermite(value1.Y, tangent1.Y, value2.Y, tangent2.Y, amount), MathHelper.Hermite(value1.Z, tangent1.Z, value2.Z, tangent2.Z, amount))); }