Files
DynamicDataDisplay/ViewportRestrictions/DateTimeHorizontalAxisRestriction.cs
2024-02-23 00:46:06 -05:00

26 lines
849 B
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Microsoft.Research.DynamicDataDisplay.ViewportRestrictions
{
public sealed class DateTimeHorizontalAxisRestriction : ViewportRestriction
{
private readonly double minSeconds = new TimeSpan(DateTime.MinValue.Ticks).TotalSeconds;
private readonly double maxSeconds = new TimeSpan(DateTime.MaxValue.Ticks).TotalSeconds;
public override DataRect Apply(DataRect previousDataRect, DataRect proposedDataRect, Viewport2D viewport)
{
DataRect borderRect = DataRect.Create(minSeconds, proposedDataRect.YMin, maxSeconds, proposedDataRect.YMax);
if (proposedDataRect.IntersectsWith(borderRect))
{
DataRect croppedRect = DataRect.Intersect(proposedDataRect, borderRect);
return croppedRect;
}
return previousDataRect;
}
}
}