This commit is contained in:
niko
2026-06-04 11:42:34 +02:00
parent f39ba70a9f
commit e720b98cd1
7488 changed files with 2493818 additions and 0 deletions
@@ -0,0 +1,79 @@
using System;
using System.Linq;
namespace UnityEngine.Timeline
{
// Token: 0x0200003A RID: 58
public static class Extrapolation
{
// Token: 0x060001E8 RID: 488 RVA: 0x00009DC4 File Offset: 0x00007FC4
internal static void CalculateExtrapolationTimes(this TrackAsset asset)
{
TimelineClip[] clips = asset.clips;
if (clips != null && clips.Length != 0)
{
if (clips[0].SupportsExtrapolation())
{
TimelineClip[] array = clips.OrderBy((TimelineClip x) => x.start).ToArray<TimelineClip>();
if (array.Length > 0)
{
for (int i = 0; i < array.Length; i++)
{
double num = double.PositiveInfinity;
for (int j = 0; j < array.Length; j++)
{
if (i != j)
{
double num2 = array[j].start - array[i].end;
if (num2 >= -TimeUtility.kTimeEpsilon && num2 < num)
{
num = Math.Min(num, num2);
}
if (array[j].start <= array[i].end && array[j].end > array[i].end)
{
num = 0.0;
}
}
}
num = ((num > Extrapolation.kMinExtrapolationTime) ? num : 0.0);
array[i].SetPostExtrapolationTime(num);
}
array[0].SetPreExtrapolationTime(Math.Max(0.0, array[0].start));
for (int k = 1; k < array.Length; k++)
{
double num3 = 0.0;
int num4 = -1;
for (int l = 0; l < k; l++)
{
if (array[l].end > array[k].start)
{
num4 = -1;
num3 = 0.0;
break;
}
double num5 = array[k].start - array[l].end;
if (num4 == -1 || num5 < num3)
{
num3 = num5;
num4 = l;
}
}
if (num4 >= 0)
{
if (array[num4].postExtrapolationMode != TimelineClip.ClipExtrapolation.None)
{
num3 = 0.0;
}
}
num3 = ((num3 > Extrapolation.kMinExtrapolationTime) ? num3 : 0.0);
array[k].SetPreExtrapolationTime(num3);
}
}
}
}
}
// Token: 0x040000E0 RID: 224
public static readonly double kMinExtrapolationTime = TimeUtility.kTimeEpsilon * 1000.0;
}
}