diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-08-20 23:40:50 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-08-20 23:40:50 -0400 |
| commit | 3af4c218c0e70167db23a6303d2af30aff37d2fe (patch) | |
| tree | 927f29edcf54ab562f40f3d1c6cb69287c7f5980 /Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Utilities/Extrapolation.cs | |
| parent | b6daed0af784f4e9bc13329dd87c671b06ee1c65 (diff) | |
| download | Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.gz Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.tar.bz2 Project-Sandbox-3af4c218c0e70167db23a6303d2af30aff37d2fe.zip | |
Removed a bunch of stuff; Changes
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Utilities/Extrapolation.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Utilities/Extrapolation.cs | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Utilities/Extrapolation.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Utilities/Extrapolation.cs deleted file mode 100644 index 34408c9..0000000 --- a/Library/PackageCache/com.unity.timeline@1.2.13/Runtime/Utilities/Extrapolation.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using UnityEngine; - -// Extension methods responsible for managing extrapolation time -namespace UnityEngine.Timeline -{ - static class Extrapolation - { - /// <summary> - /// The minimum amount of extrapolation time to apply - /// </summary> - internal static readonly double kMinExtrapolationTime = TimeUtility.kTimeEpsilon * 1000; - - // Calculates the extrapolation times - internal static void CalculateExtrapolationTimes(this TrackAsset asset) - { - TimelineClip[] clips = asset.clips; - if (clips == null || clips.Length == 0) - return; - - // extrapolation not supported - if (!clips[0].SupportsExtrapolation()) - return; - - var orderedClips = SortClipsByStartTime(clips); - if (orderedClips.Length > 0) - { - // post extrapolation is the minimum time to the next clip - for (int i = 0; i < orderedClips.Length; i++) - { - double minTime = double.PositiveInfinity; - for (int j = 0; j < orderedClips.Length; j++) - { - if (i == j) - continue; - - double deltaTime = orderedClips[j].start - orderedClips[i].end; - if (deltaTime >= -TimeUtility.kTimeEpsilon && deltaTime < minTime) - minTime = Math.Min(minTime, deltaTime); - // check for overlapped clips - if (orderedClips[j].start <= orderedClips[i].end && orderedClips[j].end > orderedClips[i].end) - minTime = 0; - } - minTime = minTime <= kMinExtrapolationTime ? 0 : minTime; - orderedClips[i].SetPostExtrapolationTime(minTime); - } - - // the first clip gets pre-extrapolation, then it's only respected if there is no post extrapolation - orderedClips[0].SetPreExtrapolationTime(Math.Max(0, orderedClips[0].start)); - for (int i = 1; i < orderedClips.Length; i++) - { - double preTime = 0; - int prevClip = -1; - for (int j = 0; j < i; j++) - { - // overlap, no pre-time - if (orderedClips[j].end > orderedClips[i].start) - { - prevClip = -1; - preTime = 0; - break; - } - - double gap = orderedClips[i].start - orderedClips[j].end; - if (prevClip == -1 || gap < preTime) - { - preTime = gap; - prevClip = j; - } - } - // check for a post extrapolation time - if (prevClip >= 0) - { - if (orderedClips[prevClip].postExtrapolationMode != TimelineClip.ClipExtrapolation.None) - preTime = 0; - } - - preTime = preTime <= kMinExtrapolationTime ? 0 : preTime; - orderedClips[i].SetPreExtrapolationTime(preTime); - } - } - } - - static TimelineClip[] SortClipsByStartTime(TimelineClip[] clips) - { - var orderedClips = new TimelineClip[clips.Length]; - Array.Copy(clips, orderedClips, clips.Length); - Array.Sort(orderedClips, (clip1, clip2) => clip1.start.CompareTo(clip2.start)); - return orderedClips; - } - } -} |
