using System; namespace NvAPIWrapper.Mosaic { /// /// Holds mosaic overlap values /// public struct Overlap : IEquatable { /// /// Creates a new Overlap /// /// Horizontal overlap /// Vertical overlap public Overlap(int overlapX, int overlapY) { HorizontalOverlap = overlapX; VerticalOverlap = overlapY; } /// /// Gets or sets horizontal overlap (OverlapX) /// public int HorizontalOverlap { get; } /// /// Gets or sets vertical overlap (OverlapY) /// public int VerticalOverlap { get; } /// public bool Equals(Overlap other) { return HorizontalOverlap == other.HorizontalOverlap && VerticalOverlap == other.VerticalOverlap; } /// public override bool Equals(object obj) { if (ReferenceEquals(null, obj)) { return false; } return obj is Overlap && Equals((Overlap) obj); } /// public override int GetHashCode() { unchecked { return (HorizontalOverlap * 397) ^ VerticalOverlap; } } /// /// Checks for equality between two objects of same type /// /// The first object /// The second object /// true, if both objects are equal, otherwise false public static bool operator ==(Overlap left, Overlap right) { return left.Equals(right); } /// /// Checks for inequality between two objects of same type /// /// The first object /// The second object /// true, if both objects are not equal, otherwise false public static bool operator !=(Overlap left, Overlap right) { return !left.Equals(right); } /// public override string ToString() { return $"({HorizontalOverlap}, {VerticalOverlap})"; } } }