// Is this track compilable for the sequence // calculate the time interval that this track will be evaluated in. internal virtual void GetEvaluationTime(out double outStart, out double outDuration) { outStart = double.PositiveInfinity; var outEnd = double.NegativeInfinity; if (hasCurves) { outStart = 0.0; outEnd = TimeUtility.GetAnimationClipLength(curves); } foreach (var clip in clips) { outStart = Math.Min(clip.start, outStart); outEnd = Math.Max(clip.end, outEnd); } if (HasNotifications()) { var notificationDuration = GetNotificationDuration(); outStart = Math.Min(notificationDuration, outStart); outEnd = Math.Max(notificationDuration, outEnd); } if (double.IsInfinity(outStart) || double.IsInfinity(outEnd)) { outStart = outDuration = 0.0; } else { outDuration = outEnd - outStart; } }
internal override void GetSequenceTime(out double outStart, out double outDuration) { if (inClipMode) { base.GetSequenceTime(out outStart, out outDuration); } else { outStart = 0; outDuration = Math.Max(GetNotificationDuration(), TimeUtility.GetAnimationClipLength(m_InfiniteClip)); } }