You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
63 lines
1.5 KiB
63 lines
1.5 KiB
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; |
|
} |
|
} |
|
} |
|
}
|
|
|