public static void FrameItems(IEnumerable <ITimelineItem> items)
        {
            if (items == null || !items.Any())
            {
                return;
            }

            // if this is called before a repaint, the timeArea can be null
            if (TimelineEditor.window.timeArea == null)
            {
                return;
            }

            var start     = (float)items.Min(x => x.start);
            var end       = (float)items.Max(x => x.end);
            var timeRange = TimelineEditor.visibleTimeRange;

            // nothing to do
            if (timeRange.x <= start && timeRange.y >= end)
            {
                return;
            }

            timeRange.x = Mathf.Max(0, timeRange.x);
            timeRange.y = Mathf.Max(0, timeRange.y);

            var ds = start - timeRange.x;
            var de = end - timeRange.y;

            var padding = TimeReferenceUtility.PixelToTime(15) - TimeReferenceUtility.PixelToTime(0);
            var d       = Math.Abs(ds) < Math.Abs(de) ? ds - padding : de + padding;

            TimelineEditor.visibleTimeRange = new Vector2(timeRange.x + d, timeRange.y + d);
        }
Exemplo n.º 2
0
        public static double TimeGapBetweenItems(ITimelineItem leftItem, ITimelineItem rightItem)
        {
            if (leftItem is MarkerItem && rightItem is MarkerItem)
            {
                var markerType = ((MarkerItem)leftItem).marker.GetType();
                var gap        = TimeReferenceUtility.PixelToTime(StyleManager.UssStyleForType(markerType).fixedWidth) - TimeReferenceUtility.PixelToTime(0);
                return(gap);
            }

            return(0.0);
        }