Files
better-genshin-impact/BetterGenshinImpact/View/Drawable/LineDrawable.cs
2024-05-03 22:22:42 +08:00

56 lines
1.3 KiB
C#

using System;
using System.Drawing;
using Point = System.Windows.Point;
namespace BetterGenshinImpact.View.Drawable;
[Serializable]
public class LineDrawable
{
public Point P1 { get; set; }
public Point P2 { get; set; }
public Pen Pen { get; set; } = new(Color.Red, 2);
public LineDrawable(double x1, double y1, double x2, double y2)
{
P1 = new Point(x1, y1);
P2 = new Point(x2, y2);
}
public LineDrawable(Point p1, Point p2)
{
P1 = p1;
P2 = p2;
}
// public LineDrawable(OpenCvSharp.Point p1, OpenCvSharp.Point p2)
// {
// var scale = TaskContext.Instance().DpiScale;
// P1 = Divide(p1, scale).ToWindowsPoint();
// P2 = Divide(p2, scale).ToWindowsPoint();
// }
//
// public static OpenCvSharp.Point Divide(OpenCvSharp.Point p, float divisor)
// {
// return new OpenCvSharp.Point(p.X / divisor, p.Y / divisor);
// }
public override bool Equals(object? obj)
{
if (obj == null || GetType() != obj.GetType())
{
return false;
}
var other = (LineDrawable)obj;
return P1.Equals(other.P1) && P2.Equals(other.P2);
}
public override int GetHashCode()
{
return P1.GetHashCode() + P2.GetHashCode();
}
}