123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- using System;
- using System.Collections.Generic;
- using UnityEngine.Playables;
- using UnityEngine.Timeline;
-
- namespace UnityEditor.Timeline
- {
- interface ISequenceState : IDisposable
- {
- TimelineAsset asset { get; }
- PlayableDirector director { get; }
- TimelineClip hostClip { get; }
- List<UnityEngine.Object> cachedChildAssets { get; }
- double start { get; }
- double timeScale { get; }
- double duration { get; }
- bool isReadOnly { get; }
- bool isAssetOnly { get; set; }
- TimelineAssetViewModel viewModel { get; }
- double time { get; set; }
- int frame { get; set; }
- double frameRate { get; set; }
-
- Range GetEvaluableRange();
- double ToGlobalTime(double t);
- double ToLocalTime(double t);
- void ResetIsReadOnly();
- void InvalidateChildAssetCache();
- }
-
- /**
- * 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; } }
-
- List<UnityEngine.Object> ISequenceState.cachedChildAssets { 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; } }
- public bool isAssetOnly { get { return false; } set { } }
-
- 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 double frameRate
- {
- get { return TimelineAsset.EditorSettings.kDefaultFrameRate; }
- set { /* NO-OP*/ }
- }
-
- public Range GetEvaluableRange()
- {
- return new Range();
- }
-
- public double ToGlobalTime(double t)
- {
- return t;
- }
-
- public double ToLocalTime(double t)
- {
- return t;
- }
-
- public void ResetIsReadOnly()
- {
- // NO-OP
- }
-
- public void InvalidateChildAssetCache()
- {
- // NO-OP
- }
-
- public void Dispose()
- {
- // NO-OP
- }
- }
- }
|