mirror of
https://github.com/Ellpeck/MLEM.git
synced 2024-09-29 17:41:06 +02:00
61 lines
2.1 KiB
C#
61 lines
2.1 KiB
C#
|
using Microsoft.Xna.Framework;
|
||
|
|
||
|
namespace MLEM.Misc {
|
||
|
public struct Padding {
|
||
|
|
||
|
public float Left;
|
||
|
public float Right;
|
||
|
public float Top;
|
||
|
public float Bottom;
|
||
|
public float Width => this.Left + this.Right;
|
||
|
public float Height => this.Top + this.Bottom;
|
||
|
|
||
|
public Padding(float left, float right, float top, float bottom) {
|
||
|
this.Left = left;
|
||
|
this.Right = right;
|
||
|
this.Top = top;
|
||
|
this.Bottom = bottom;
|
||
|
}
|
||
|
|
||
|
public static implicit operator Padding(Vector2 vec) {
|
||
|
return new Padding(vec.X, vec.X, vec.Y, vec.Y);
|
||
|
}
|
||
|
|
||
|
public static Padding operator *(Padding p, float scale) {
|
||
|
return new Padding(p.Left * scale, p.Right * scale, p.Top * scale, p.Bottom * scale);
|
||
|
}
|
||
|
|
||
|
public static Padding operator +(Padding left, Padding right) {
|
||
|
return new Padding(left.Left + right.Left, left.Right + right.Right, left.Top + right.Top, left.Bottom + right.Bottom);
|
||
|
}
|
||
|
|
||
|
public static Padding operator -(Padding left, Padding right) {
|
||
|
return new Padding(left.Left - right.Left, left.Right - right.Right, left.Top - right.Top, left.Bottom - right.Bottom);
|
||
|
}
|
||
|
|
||
|
public static bool operator ==(Padding left, Padding right) {
|
||
|
return left.Equals(right);
|
||
|
}
|
||
|
|
||
|
public static bool operator !=(Padding left, Padding right) {
|
||
|
return !(left == right);
|
||
|
}
|
||
|
|
||
|
public bool Equals(Padding other) {
|
||
|
return this.Left.Equals(other.Left) && this.Right.Equals(other.Right) && this.Top.Equals(other.Top) && this.Bottom.Equals(other.Bottom);
|
||
|
}
|
||
|
|
||
|
public override bool Equals(object obj) {
|
||
|
return obj is Padding other && this.Equals(other);
|
||
|
}
|
||
|
|
||
|
public override int GetHashCode() {
|
||
|
var hashCode = this.Left.GetHashCode();
|
||
|
hashCode = (hashCode * 397) ^ this.Right.GetHashCode();
|
||
|
hashCode = (hashCode * 397) ^ this.Top.GetHashCode();
|
||
|
hashCode = (hashCode * 397) ^ this.Bottom.GetHashCode();
|
||
|
return hashCode;
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|