Add WinUI/UWP Rect for double precision

This commit is contained in:
ClemensFischer 2022-12-01 23:49:57 +01:00
parent 9280743c8a
commit 498a60a2ec
16 changed files with 102 additions and 41 deletions

View file

@ -3,9 +3,7 @@
// Licensed under the Microsoft Public License (Ms-PL)
using System;
#if WINUI || UWP
using Windows.Foundation;
#else
#if !WINUI && !UWP
using System.Windows;
#endif

View file

@ -4,9 +4,7 @@
using System;
using System.Globalization;
#if WINUI || UWP
using Windows.Foundation;
#else
#if !WINUI && !UWP
using System.Windows;
#endif

View file

@ -8,13 +8,11 @@ using System.IO;
using System.Linq;
using System.Threading.Tasks;
#if WINUI
using Windows.Foundation;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Imaging;
#elif UWP
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;

View file

@ -3,9 +3,7 @@
// Licensed under the Microsoft Public License (Ms-PL)
using System;
#if WINUI || UWP
using Windows.Foundation;
#else
#if !WINUI && !UWP
using System.Windows;
#endif
@ -50,30 +48,30 @@ namespace MapControl
return true;
}
var topLeft = new Point(rect.Left, rect.Top);
var topRight = new Point(rect.Right, rect.Top);
var bottomLeft = new Point(rect.Left, rect.Bottom);
var bottomRight = new Point(rect.Right, rect.Bottom);
var topLeft = new Point(rect.X, rect.Y);
var topRight = new Point(rect.X + rect.Width, rect.Y);
var bottomLeft = new Point(rect.X, rect.Y + rect.Height);
var bottomRight = new Point(rect.X + rect.Width, rect.Y + rect.Height);
var numIntersections = 0;
if (GetIntersection(ref p1, ref p2, topLeft, bottomLeft, p => p.X <= rect.Left)) // left edge
if (GetIntersection(ref p1, ref p2, topLeft, bottomLeft, p => p.X <= rect.X)) // left edge
{
numIntersections++;
}
if (GetIntersection(ref p1, ref p2, topLeft, topRight, p => p.Y <= rect.Top)) // top edge
if (GetIntersection(ref p1, ref p2, topLeft, topRight, p => p.Y <= rect.Y)) // top edge
{
numIntersections++;
}
if (numIntersections < 2 &&
GetIntersection(ref p1, ref p2, topRight, bottomRight, p => p.X >= rect.Right)) // right edge
GetIntersection(ref p1, ref p2, topRight, bottomRight, p => p.X >= rect.X + rect.Width)) // right edge
{
numIntersections++;
}
if (numIntersections < 2 &&
GetIntersection(ref p1, ref p2, bottomLeft, bottomRight, p => p.Y >= rect.Bottom)) // bottom edge
GetIntersection(ref p1, ref p2, bottomLeft, bottomRight, p => p.Y >= rect.Y + rect.Height)) // bottom edge
{
numIntersections++;
}

View file

@ -4,12 +4,10 @@
using System;
#if WINUI
using Windows.Foundation;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Animation;
#elif UWP
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Animation;

View file

@ -9,9 +9,7 @@ using System.Linq;
#if WINUI
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Media;
using Windows.Foundation;
#elif UWP
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Media;
#else

View file

@ -7,14 +7,12 @@ using System.Diagnostics;
using System.Linq;
using System.Threading.Tasks;
#if WINUI
using Windows.Foundation;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Media.Animation;
using DispatcherTimer = Microsoft.UI.Dispatching.DispatcherQueueTimer;
#elif UWP
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;

View file

@ -52,10 +52,7 @@ namespace MapControl
/// Gets a Transform for scaling and rotating geometries
/// in map coordinates (meters) to view coordinates (pixels).
/// </summary>
public Transform MapTransform
{
get => mapTransform ?? (mapTransform = new MatrixTransform());
}
public Transform MapTransform => mapTransform ?? (mapTransform = new MatrixTransform());
private MatrixTransform mapTransform;

View file

@ -4,9 +4,7 @@
using System;
using System.Globalization;
#if WINUI || UWP
using Windows.Foundation;
#else
#if !WINUI && !UWP
using System.Windows;
#endif

View file

@ -4,9 +4,9 @@
using System;
#if WINUI
using Windows.Foundation;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Media;
using Windows.Foundation;
#elif UWP
using Windows.Foundation;
using Windows.UI.Xaml;

View file

@ -9,11 +9,9 @@ using System.Linq;
using System.Threading.Tasks;
using System.Xml.Linq;
#if WINUI
using Windows.Foundation;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Media;
#elif UWP
using Windows.Foundation;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Media;
#else