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})";
}
}
}