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);
 | |
|         }
 | |
|     }
 | |
| }
 |