60 if (
keys.
Count <= keyIndex || keyIndex < 0)
67 float num2 = (num = (position = curveKey.
Position));
70 float num4 = (num3 = (
value = curveKey.
Value));
73 num2 =
Keys[keyIndex - 1].Position;
74 num4 =
Keys[keyIndex - 1].Value;
78 position =
Keys[keyIndex + 1].Position;
81 switch (tangentInType)
85 float num5 = position - num2;
86 float num6 =
value - num4;
87 if (
Math.
Abs(num6) < 1.1920929E-07f)
89 curveKey.TangentIn = 0f;
93 curveKey.TangentIn = num6 *
Math.
Abs(num2 - num) / num5;
98 curveKey.TangentIn = num3 - num4;
101 curveKey.TangentIn = 0f;
104 switch (tangentOutType)
108 float num7 = position - num2;
109 float num8 =
value - num4;
110 if (
Math.
Abs(num8) < 1.1920929E-07f)
112 curveKey.TangentOut = 0f;
116 curveKey.TangentOut = num8 *
Math.
Abs(position - num) / num7;
121 curveKey.TangentOut =
value - num3;
124 curveKey.TangentOut = 0f;
150 return keys[0].internalValue;
154 float num = position;
164 return curveKey.internalValue - curveKey.tangentIn * (curveKey.position - num);
171 float num4 = num - (curveKey.position + num3 *
keys.
TimeRange);
174 num = curveKey.position + num4;
178 num = curveKey.position + num4;
179 num2 = (curveKey2.internalValue - curveKey.
internalValue) * num3;
183 num = ((((uint)(
int)num3 & (
true ? 1u : 0u)) != 0) ? (curveKey2.
position - num4) : (curveKey.position + num4));
194 return curveKey2.internalValue - curveKey2.tangentOut * (curveKey2.position - num);
201 float num6 = num - (curveKey.position + num5 *
keys.
TimeRange);
204 num = curveKey.position + num6;
208 num = curveKey.position + num6;
209 num2 = (curveKey2.internalValue - curveKey.
internalValue) * num5;
213 num = ((((uint)(
int)num5 & (
true ? 1u : 0u)) != 0) ? (curveKey2.
position - num6) : (curveKey.position + num6));
219 return num2 +
Hermite(k, k2, num);