123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- using System.Collections.Generic;
- using System.Linq;
- using UnityEngine;
- namespace UnityEditor.Timeline
- {
- class ItemsGroup
- {
- readonly ITimelineItem[] m_Items;
- readonly ITimelineItem m_LeftMostItem;
- readonly ITimelineItem m_RightMostItem;
- public ITimelineItem[] items
- {
- get { return m_Items; }
- }
- public double start
- {
- get { return m_LeftMostItem.start; }
- set
- {
- var offset = value - m_LeftMostItem.start;
- foreach (var clip in m_Items)
- clip.start += offset;
- }
- }
- public double end
- {
- get { return m_RightMostItem.end; }
- }
- public ITimelineItem leftMostItem
- {
- get { return m_LeftMostItem; }
- }
- public ITimelineItem rightMostItem
- {
- get { return m_RightMostItem; }
- }
- public ItemsGroup(IEnumerable<ITimelineItem> items)
- {
- Debug.Assert(items != null && items.Any());
- m_Items = items.ToArray();
- m_LeftMostItem = null;
- m_RightMostItem = null;
- foreach (var item in m_Items)
- {
- if (m_LeftMostItem == null || item.start < m_LeftMostItem.start)
- m_LeftMostItem = item;
- if (m_RightMostItem == null || item.end > m_RightMostItem.end)
- m_RightMostItem = item;
- }
- }
- }
- }
|