コード例 #1
0
    public static float Evaluate(float time, Keyframe lhs, Keyframe rhs)
    {
        float dx = rhs.time - lhs.time;
        float m0;
        float m1;
        float t;

        if (dx != 0.0f)
        {
            t  = (time - lhs.time) / dx;
            m0 = lhs.outTangent * dx;
            m1 = rhs.inTangent * dx;
        }
        else
        {
            t  = 0.0f;
            m0 = 0;
            m1 = 0;
        }

        return(Hermite.Evaluate(t, lhs.value, m0, m1, rhs.value));
    }
コード例 #2
0
 /// <summary>
 /// Returns world space position of point evaluated on t.
 /// </summary>
 /// <param name="t"></param>
 /// <returns></returns>
 public Vector3 GetNonUniformPoint(float t)
 {
     return(transform.TransformPoint(m_Hermite.Evaluate(t)));
 }