/Main/src/DynamicDataDisplay/Common/Auxiliary/RectExtensions.cs
C# | 67 lines | 57 code | 10 blank | 0 comment | 1 complexity | 223d506b0e6c6e38979c0911b0f31ec2 MD5 | raw file
Possible License(s): CC-BY-SA-3.0
- 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()
- );
- }
- }
- }