Add Circle/F conversions

This commit is contained in:
Oliver Booth 2022-06-01 15:35:33 +01:00
parent b5227f58d3
commit 5f53495817
No known key found for this signature in database
GPG Key ID: 32A00B35503AF634
1 changed files with 22 additions and 1 deletions

View File

@ -1,4 +1,4 @@
using System.Drawing; using System.Drawing;
using System.Numerics; using System.Numerics;
using X10D.Numerics; using X10D.Numerics;
@ -163,6 +163,27 @@ public readonly struct CircleF : IEquatable<CircleF>, IComparable<CircleF>, ICom
return left.CompareTo(right) >= 0; return left.CompareTo(right) >= 0;
} }
/// <summary>
/// Explicitly converts a <see cref="Circle" /> to a <see cref="CircleF" />.
/// </summary>
/// <param name="circle">The circle to convert.</param>
/// <returns>The converted circle.</returns>
public static explicit operator Circle(CircleF circle)
{
PointF center = circle.Center;
return new Circle(new Point((int)center.X, (int)center.Y), (int)circle.Radius);
}
/// <summary>
/// Implicitly converts a <see cref="Circle" /> to a <see cref="CircleF" />.
/// </summary>
/// <param name="circle">The circle to convert.</param>
/// <returns>The converted circle.</returns>
public static implicit operator CircleF(Circle circle)
{
return new CircleF(circle.Center, circle.Radius);
}
/// <summary> /// <summary>
/// Compares this instance to another <see cref="Circle" />. /// Compares this instance to another <see cref="Circle" />.
/// </summary> /// </summary>