Hermite() public static method

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
Esempio n. 1
0
 /// <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);
 }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
 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);
 }
Esempio n. 5
0
        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
        }
Esempio n. 6
0
 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);
 }
Esempio n. 7
0
        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));
        }
Esempio n. 8
0
        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));
        }
Esempio n. 9
0
 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);
 }
Esempio n. 10
0
 /// <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)));
 }