using System;

namespace skyscraper5.Skyscraper.Drawing
{
	public struct PointF
	{
		public PointF(double x, double y)
		{
			this.x = x; 
			this.y = y;
		}

		private double x, y;

		public double X
		{
			get => x;
			set => x = value;
		}

		public double Y
		{
			get => y;
			set => y = value;
		}

		public bool Equals(PointF other)
		{
			return x.Equals(other.x) && y.Equals(other.y);
		}

		public override bool Equals(object obj)
		{
			return obj is PointF other && Equals(other);
		}

		public override int GetHashCode()
		{
			return HashCode.Combine(x, y);
		}

		public override string ToString()
		{
			return $"{nameof(x)}: {x}, {nameof(y)}: {y}";
		}
	}
}
