diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
| commit | c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch) | |
| tree | ee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TimeReferenceUtility.cs | |
| download | Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2 Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip | |
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TimeReferenceUtility.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TimeReferenceUtility.cs | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TimeReferenceUtility.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TimeReferenceUtility.cs new file mode 100644 index 0000000..4e456f8 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Utilities/TimeReferenceUtility.cs @@ -0,0 +1,57 @@ +using UnityEngine.Timeline; + +namespace UnityEditor.Timeline +{ + static class TimeReferenceUtility + { + static WindowState state { get { return TimelineWindow.instance.state; } } + + public static double SnapToFrame(double time) + { + if (state.timeReferenceMode == TimeReferenceMode.Global) + { + time = state.editSequence.ToGlobalTime(time); + time = TimeUtility.RoundToFrame(time, state.referenceSequence.frameRate); + return state.editSequence.ToLocalTime(time); + } + + return TimeUtility.RoundToFrame(time, state.referenceSequence.frameRate); + } + + public static string ToTimeString(double time, string format = "F2") + { + if (state.timeReferenceMode == TimeReferenceMode.Global) + time = state.editSequence.ToGlobalTime(time); + + return state.editSequence.viewModel.timeInFrames ? + TimeUtility.TimeAsFrames(time, state.referenceSequence.frameRate, format) : + TimeUtility.TimeAsTimeCode(time, state.referenceSequence.frameRate, format); + } + + public static double FromTimeString(string timeString) + { + double newTime; + + if (state.timeInFrames) + { + double newFrameDouble; + if (double.TryParse(timeString, out newFrameDouble)) + newTime = TimeUtility.FromFrames(newFrameDouble, state.referenceSequence.frameRate); + else + newTime = state.editSequence.time; + } + else + { + newTime = TimeUtility.ParseTimeCode(timeString, state.referenceSequence.frameRate, -1); + } + + if (newTime >= 0.0) + { + return state.timeReferenceMode == TimeReferenceMode.Global ? + state.editSequence.ToLocalTime(newTime) : newTime; + } + + return state.editSequence.time; + } + } +} |
