From c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 Mon Sep 17 00:00:00 2001 From: Andrew Lee Date: Sun, 19 Apr 2020 17:19:32 -0400 Subject: Inital commit --- .../Editor/State/ISequenceState.cs | 106 +++++++++++++++++++++ 1 file changed, 106 insertions(+) create mode 100644 Library/PackageCache/com.unity.timeline@1.2.13/Editor/State/ISequenceState.cs (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/State/ISequenceState.cs') diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/State/ISequenceState.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/State/ISequenceState.cs new file mode 100644 index 0000000..5d32884 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/State/ISequenceState.cs @@ -0,0 +1,106 @@ +using System; +using UnityEngine.Playables; +using UnityEngine.Timeline; + +namespace UnityEditor.Timeline +{ + interface ISequenceState : IDisposable + { + TimelineAsset asset { get; } + PlayableDirector director { get; } + TimelineClip hostClip { get; } + double start { get; } + double timeScale { get; } + double duration { get; } + bool isReadOnly { get; } + TimelineAssetViewModel viewModel { get; } + double time { get; set; } + int frame { get; set; } + float frameRate { get; set; } + + Range GetEvaluableRange(); + string TimeAsString(double timeValue, string format = "F2"); + double ToGlobalTime(double t); + double ToLocalTime(double t); + void ResetIsReadOnly(); + } + + /** + * This class is used to hold default values for an implementation of ISequenceState. + * It could be removed in a phase 2, but it is currently used to limit the scope of + * this refactoring: it allows client code to access sequence info without having to + * worry about `currentSequence` being null. + * In the future this should be removed and we should pass around the correct data + * structure (i.e. SequenceState OR WindowState) based on the situation. + */ + class NullSequenceState : ISequenceState + { + public TimelineAsset asset { get { return null; } } + public PlayableDirector director { get { return null; } } + public TimelineClip hostClip { get { return null; } } + public double start { get { return 0.0; } } + public double timeScale { get { return 1.0; } } + public double duration { get { return 0.0; } } + public bool isReadOnly { get { return false; } } + + TimelineAssetViewModel m_ViewModel; + + public TimelineAssetViewModel viewModel + { + get + { + if (m_ViewModel == null) + m_ViewModel = TimelineWindowViewPrefs.CreateUnassociatedViewModel(); + return m_ViewModel; + } + } + + public double time + { + get { return 0.0; } + set { /* NO-OP*/ } + } + + public int frame + { + get { return 0; } + set { /* NO-OP*/ } + } + + public float frameRate + { + get { return TimelineAsset.EditorSettings.kDefaultFps; } + set { /* NO-OP*/ } + } + + public Range GetEvaluableRange() + { + return new Range(); + } + + public string TimeAsString(double timeValue, string format = "F2") + { + return TimeUtility.TimeAsTimeCode(timeValue, frameRate, format); + } + + public double ToGlobalTime(double t) + { + return t; + } + + public double ToLocalTime(double t) + { + return t; + } + + public void ResetIsReadOnly() + { + // NO-OP + } + + public void Dispose() + { + // NO-OP + } + } +} -- cgit v1.2.3