public float CalculateLinearTangent(Keyframe from, Keyframe to, int component)
{
float t = 0.01f;
Vector3 euler = this.EvaluateEulerCurvesDirectly(to.time);
Vector3 vector2 = this.EvaluateEulerCurvesDirectly(from.time);
Quaternion a = Quaternion.Euler(euler);
Quaternion b = Quaternion.Euler(vector2);
Vector3 eulerFromQuaternion = GetEulerFromQuaternion(Quaternion.Slerp(a, b, t), euler);
switch (component)
{
case 0:
return (((eulerFromQuaternion.x - euler.x) / t) / -(to.time - from.time));
case 1:
return (((eulerFromQuaternion.y - euler.y) / t) / -(to.time - from.time));
case 2:
return (((eulerFromQuaternion.z - euler.z) / t) / -(to.time - from.time));
}
return 0f;
}