146 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			146 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | using UnityEngine.Timeline; | ||
|  | 
 | ||
|  | namespace UnityEditor.Timeline | ||
|  | { | ||
|  |     class ClipItem : IBlendable, ITrimmable | ||
|  |     { | ||
|  |         readonly TimelineClip m_Clip; | ||
|  | 
 | ||
|  |         public TimelineClip clip | ||
|  |         { | ||
|  |             get { return m_Clip; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public ClipItem(TimelineClip clip) | ||
|  |         { | ||
|  |             m_Clip = clip; | ||
|  |         } | ||
|  | 
 | ||
|  |         public TrackAsset parentTrack | ||
|  |         { | ||
|  |             get { return m_Clip.GetParentTrack(); } | ||
|  |             set { m_Clip.SetParentTrack_Internal(value); } | ||
|  |         } | ||
|  | 
 | ||
|  |         public double start | ||
|  |         { | ||
|  |             get { return m_Clip.start; } | ||
|  |             set { m_Clip.start = value; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public double end | ||
|  |         { | ||
|  |             get { return m_Clip.end; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public double duration | ||
|  |         { | ||
|  |             get { return m_Clip.duration; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public bool IsCompatibleWithTrack(TrackAsset track) | ||
|  |         { | ||
|  |             return track.IsCompatibleWithClip(m_Clip); | ||
|  |         } | ||
|  | 
 | ||
|  |         public void PushUndo(string operation) | ||
|  |         { | ||
|  |             UndoExtensions.RegisterClip(m_Clip, operation); | ||
|  |         } | ||
|  | 
 | ||
|  |         public TimelineItemGUI gui | ||
|  |         { | ||
|  |             get { return ItemToItemGui.GetGuiForClip(m_Clip); } | ||
|  |         } | ||
|  | 
 | ||
|  |         public bool supportsBlending | ||
|  |         { | ||
|  |             get { return m_Clip.SupportsBlending(); } | ||
|  |         } | ||
|  | 
 | ||
|  |         public bool hasLeftBlend | ||
|  |         { | ||
|  |             get { return m_Clip.hasBlendIn; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public bool hasRightBlend | ||
|  |         { | ||
|  |             get { return m_Clip.hasBlendOut; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public double leftBlendDuration | ||
|  |         { | ||
|  |             get { return m_Clip.hasBlendIn ? m_Clip.blendInDuration : m_Clip.easeInDuration; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public double rightBlendDuration | ||
|  |         { | ||
|  |             get { return m_Clip.hasBlendOut ? m_Clip.blendOutDuration : m_Clip.easeOutDuration; } | ||
|  |         } | ||
|  | 
 | ||
|  |         public void SetStart(double time, bool affectTimeScale) | ||
|  |         { | ||
|  |             ClipModifier.SetStart(m_Clip, time, affectTimeScale); | ||
|  |             m_Clip.ConformEaseValues(); | ||
|  |         } | ||
|  | 
 | ||
|  |         public void SetEnd(double time, bool affectTimeScale) | ||
|  |         { | ||
|  |             ClipModifier.SetEnd(m_Clip, time, affectTimeScale); | ||
|  |             m_Clip.ConformEaseValues(); | ||
|  |         } | ||
|  | 
 | ||
|  |         public void Delete() | ||
|  |         { | ||
|  |             EditorClipFactory.RemoveEditorClip(m_Clip); | ||
|  |             ClipModifier.Delete(m_Clip.GetParentTrack().timelineAsset, m_Clip); | ||
|  |         } | ||
|  | 
 | ||
|  |         public void TrimStart(double time) | ||
|  |         { | ||
|  |             ClipModifier.TrimStart(m_Clip, time); | ||
|  |         } | ||
|  | 
 | ||
|  |         public void TrimEnd(double time) | ||
|  |         { | ||
|  |             ClipModifier.TrimEnd(m_Clip, time); | ||
|  |         } | ||
|  | 
 | ||
|  |         public ITimelineItem CloneTo(TrackAsset parent, double time) | ||
|  |         { | ||
|  |             return new ClipItem(TimelineHelpers.Clone(m_Clip, TimelineEditor.inspectedDirector, TimelineEditor.inspectedDirector, time, parent)); | ||
|  |         } | ||
|  | 
 | ||
|  |         public override string ToString() | ||
|  |         { | ||
|  |             return m_Clip.ToString(); | ||
|  |         } | ||
|  | 
 | ||
|  |         public bool Equals(ClipItem otherClip) | ||
|  |         { | ||
|  |             if (ReferenceEquals(null, otherClip)) return false; | ||
|  |             if (ReferenceEquals(this, otherClip)) return true; | ||
|  |             return Equals(m_Clip, otherClip.m_Clip); | ||
|  |         } | ||
|  | 
 | ||
|  |         public override int GetHashCode() | ||
|  |         { | ||
|  |             return (m_Clip != null ? m_Clip.GetHashCode() : 0); | ||
|  |         } | ||
|  | 
 | ||
|  |         public bool Equals(ITimelineItem other) | ||
|  |         { | ||
|  |             return Equals((object)other); | ||
|  |         } | ||
|  | 
 | ||
|  |         public override bool Equals(object obj) | ||
|  |         { | ||
|  |             if (ReferenceEquals(null, obj)) return false; | ||
|  |             if (ReferenceEquals(this, obj)) return true; | ||
|  |             var other = obj as ClipItem; | ||
|  |             return other != null && Equals(other); | ||
|  |         } | ||
|  |     } | ||
|  | } |