Esempio n. 1
0
        private static IClock CreateClock(IClock baseClock, Timeline timeline)
        {
            if (timeline.Duration.HasTimeSpan)
            {
                baseClock = new DurationClock(baseClock, timeline.Duration.TimeSpan);
            }

            if (timeline.AutoReverse)
            {
                baseClock = new ReverseClock(baseClock);
            }

            if (timeline.RepeatBehavior != RepeatBehavior.OneTime)
            {
                double iterationsCount = timeline.RepeatBehavior.Count.DefaultIfNaN((double)timeline.RepeatBehavior.Duration.Ticks / baseClock.Duration.Ticks);
                baseClock = new RepeatClock(baseClock, iterationsCount);
            }

            if (timeline.BeginTime != TimeSpan.Zero)
            {
                baseClock = new OffsetClock(baseClock, timeline.BeginTime);
            }

            return(baseClock);
        }
Esempio n. 2
0
        private static IClock CreateClock(IClock baseClock, Timeline timeline)
        {
            if (timeline.Duration.HasTimeSpan)
            {
                baseClock = new DurationClock(baseClock, timeline.Duration.TimeSpan);
            }

            if (timeline.AutoReverse)
            {
                baseClock = new ReverseClock(baseClock);
            }

            if (timeline.RepeatBehavior != RepeatBehavior.OneTime)
            {
                double iterationsCount = timeline.RepeatBehavior.Count.DefaultIfNaN((double)timeline.RepeatBehavior.Duration.Ticks / baseClock.Duration.Ticks);
                baseClock = new RepeatClock(baseClock, iterationsCount);
            }

            if (timeline.BeginTime != TimeSpan.Zero)
            {
                baseClock = new OffsetClock(baseClock, timeline.BeginTime);
            }

            return baseClock;
        }