Beispiel #1
0
        public IEnumerable <LocalInterval> GetIntervals(LocalInterval interval = null)
        {
            if (layers.Count == 0)
            {
                return(GetLocalIntervals(interval));
            }

            List <LocalInterval> currIntervals = GetLocalIntervals(interval).ToList();
            var currTimeline = new TimelineMask(Timezone, currIntervals);

            foreach (var layer in layers)
            {
                var nextIntervals = layer.Value.GetIntervals(interval, Timezone).ToList();

                var flat = layer.Key(currIntervals, nextIntervals).ToList();
                currTimeline  = new TimelineMask(Timezone, flat);
                currIntervals = currTimeline.GetIntervals(interval, Timezone).ToList();
            }

            return(currTimeline.GetIntervals(interval));
        }
 public Timeline(TimelineMask mask = null, TimelinePayload payload = null)
 {
     this.mask    = mask ?? new TimelineMask();
     this.payload = payload ?? new TimelinePayload();
 }
 public Timeline(TimelineMask mask) : this(mask, null)
 {
 }
Beispiel #4
0
 private TimelineMask Add(Func <List <LocalInterval>, List <LocalInterval>, IEnumerable <LocalInterval> > op, TimelineMask timeline)
 {
     Timezone = Timezone ?? timeline.Timezone;
     layers.Add(new KeyValuePair <Func <List <LocalInterval>, List <LocalInterval>, IEnumerable <LocalInterval> >, TimelineMask>(op, timeline));
     return(this);
 }
Beispiel #5
0
 public TimelineMask Complement(TimelineMask timeline)
 {
     return(Add(TimeMathOld.Complement, timeline));
 }
Beispiel #6
0
 public TimelineMask Union(TimelineMask timeline)
 {
     return(Add(TimeMathOld.Union, timeline));
 }
Beispiel #7
0
 public TimelineMask Intersection(TimelineMask timeline)
 {
     return(Add(TimeMathOld.Intersection, timeline));
 }