diff options
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/TimelineClipGroup.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/TimelineClipGroup.cs | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/TimelineClipGroup.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/TimelineClipGroup.cs new file mode 100644 index 0000000..03f4d8d --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Manipulators/TimelineClipGroup.cs @@ -0,0 +1,54 @@ +using System.Collections.Generic; +using System.Linq; +using UnityEngine; +using UnityEngine.Timeline; + +namespace UnityEditor.Timeline +{ + class TimelineClipGroup + { + readonly TimelineClip[] m_Clips; + readonly TimelineClip m_LeftMostClip; + readonly TimelineClip m_RightMostClip; + + public TimelineClip[] clips + { + get { return m_Clips; } + } + + public double start + { + get { return m_LeftMostClip.start; } + set + { + var offset = value - m_LeftMostClip.start; + + foreach (var clip in m_Clips) + clip.start += offset; + } + } + + public double end + { + get { return m_RightMostClip.end; } + } + + public TimelineClipGroup(IEnumerable<TimelineClip> clips) + { + Debug.Assert(clips != null && clips.Any()); + + m_Clips = clips.ToArray(); + m_LeftMostClip = null; + m_RightMostClip = null; + + foreach (var clip in m_Clips) + { + if (m_LeftMostClip == null || clip.start < m_LeftMostClip.start) + m_LeftMostClip = clip; + + if (m_RightMostClip == null || clip.end > m_RightMostClip.end) + m_RightMostClip = clip; + } + } + } +} |
