Initial Commit

This commit is contained in:
2024-02-23 00:46:06 -05:00
commit 2bbedc0178
470 changed files with 46035 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
using System.Windows;
using Microsoft.Research.DynamicDataDisplay.Common;
using System.Diagnostics;
namespace Microsoft.Research.DynamicDataDisplay
{
public static class RectExtensions
{
public static Point GetCenter(this Rect rect)
{
return new Point(rect.Left + rect.Width * 0.5, rect.Top + rect.Height * 0.5);
}
public static Rect FromCenterSize(Point center, Size size)
{
return FromCenterSize(center, size.Width, size.Height);
}
public static Rect FromCenterSize(Point center, double width, double height)
{
Rect res = new Rect(center.X - width / 2, center.Y - height / 2, width, height);
return res;
}
public static Rect Zoom(this Rect rect, Point to, double ratio)
{
return CoordinateUtilities.RectZoom(rect, to, ratio);
}
public static Rect ZoomOutFromCenter(this Rect rect, double ratio)
{
return CoordinateUtilities.RectZoom(rect, rect.GetCenter(), ratio);
}
public static Rect ZoomInToCenter(this Rect rect, double ratio)
{
return CoordinateUtilities.RectZoom(rect, rect.GetCenter(), 1 / ratio);
}
public static Int32Rect ToInt32Rect(this Rect rect)
{
Int32Rect intRect = new Int32Rect(
(int)rect.X,
(int)rect.Y,
(int)rect.Width,
(int)rect.Height);
return intRect;
}
[DebuggerStepThrough]
public static DataRect ToDataRect(this Rect rect)
{
return new DataRect(rect);
}
internal static bool IsNaN(this Rect rect)
{
return !rect.IsEmpty && (
rect.X.IsNaN() ||
rect.Y.IsNaN() ||
rect.Width.IsNaN() ||
rect.Height.IsNaN()
);
}
}
}