59 {
60 if (
keys.
Count <= keyIndex || keyIndex < 0)
61 {
63 }
64 CurveKey curveKey =
Keys[keyIndex];
65 float num;
66 float position;
67 float num2 = (num = (position = curveKey.Position));
68 float num3;
70 float num4 = (num3 = (
value = curveKey.Value));
71 if (keyIndex > 0)
72 {
73 num2 =
Keys[keyIndex - 1].Position;
74 num4 =
Keys[keyIndex - 1].Value;
75 }
77 {
78 position =
Keys[keyIndex + 1].Position;
80 }
81 switch (tangentInType)
82 {
84 {
85 float num5 = position - num2;
86 float num6 =
value - num4;
87 if (
Math.
Abs(num6) < 1.1920929E-07f)
88 {
89 curveKey.TangentIn = 0f;
90 }
91 else
92 {
93 curveKey.TangentIn = num6 *
Math.
Abs(num2 - num) / num5;
94 }
95 break;
96 }
98 curveKey.TangentIn = num3 - num4;
99 break;
100 default:
101 curveKey.TangentIn = 0f;
102 break;
103 }
104 switch (tangentOutType)
105 {
107 {
108 float num7 = position - num2;
109 float num8 =
value - num4;
110 if (
Math.
Abs(num8) < 1.1920929E-07f)
111 {
112 curveKey.TangentOut = 0f;
113 }
114 else
115 {
116 curveKey.TangentOut = num8 *
Math.
Abs(position - num) / num7;
117 }
118 break;
119 }
121 curveKey.TangentOut =
value - num3;
122 break;
123 default:
124 curveKey.TangentOut = 0f;
125 break;
126 }
127 }
static double Abs(double value)