//********************************** Banshee Engine (www.banshee3d.com) **************************************************// //**************** Copyright (c) 2016 Marko Pintera (marko.pintera@gmail.com). All rights reserved. **********************// using System; using System.Runtime.InteropServices; namespace BansheeEngine { /** @addtogroup Math * @{ */ /// /// Represents a 2D rectangle using real values. Rectangle is represented with an origin in top left and width/height. /// [StructLayout(LayoutKind.Sequential), SerializeObject] public struct Rect2 // Note: Must match C++ struct Rect2 { public float x, y, width, height; /// /// Creates a new 2D rectangle. /// /// Left-most coordinate of the rectangle. /// Top-most coordinate of the rectangle. /// Width of the rectangle. /// Height of the rectangle. public Rect2(float x, float y, float width, float height) { this.x = x; this.y = y; this.width = width; this.height = height; } public static bool operator ==(Rect2 lhs, Rect2 rhs) { return lhs.x == rhs.x && lhs.y == rhs.y && lhs.width == rhs.width && lhs.height == rhs.height; } public static bool operator !=(Rect2 lhs, Rect2 rhs) { return !(lhs == rhs); } /// public override bool Equals(object other) { if (!(other is Rect2)) return false; Rect2 rect = (Rect2)other; if (x.Equals(rect.x) && y.Equals(rect.y) && width.Equals(rect.width) && height.Equals(rect.height)) return true; return false; } /// public override int GetHashCode() { return base.GetHashCode(); } /// public override string ToString() { return String.Format("(x:{0} y:{1} width:{2} height:{3})", x, y, width, height); } } /** @} */ }