From 10cb451ad004f34f740e6fae6950b1a16987befc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dariusz=20Komosi=C5=84ski?= Date: Sun, 10 Mar 2019 17:28:42 +0100 Subject: [PATCH] Add Equals implementation to the TransformedBounds --- .../VisualTree/TransformedBounds.cs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/Avalonia.Visuals/VisualTree/TransformedBounds.cs b/src/Avalonia.Visuals/VisualTree/TransformedBounds.cs index da21a416e1..39b328adc2 100644 --- a/src/Avalonia.Visuals/VisualTree/TransformedBounds.cs +++ b/src/Avalonia.Visuals/VisualTree/TransformedBounds.cs @@ -50,5 +50,41 @@ namespace Avalonia.VisualTree return Bounds.Contains(point); } } + + public bool Equals(TransformedBounds other) + { + return Bounds == other.Bounds && Clip == other.Clip && Transform == other.Transform; + } + + public override bool Equals(object obj) + { + if (obj is null) + { + return false; + } + + return obj is TransformedBounds other && Equals(other); + } + + public override int GetHashCode() + { + unchecked + { + var hashCode = Bounds.GetHashCode(); + hashCode = (hashCode * 397) ^ Clip.GetHashCode(); + hashCode = (hashCode * 397) ^ Transform.GetHashCode(); + return hashCode; + } + } + + public static bool operator ==(TransformedBounds left, TransformedBounds right) + { + return left.Equals(right); + } + + public static bool operator !=(TransformedBounds left, TransformedBounds right) + { + return !left.Equals(right); + } } }