/** rectangle utilities */ module re.math.rectangle_ext; import re.math.raytypes; // - custom Vector2 center(Rectangle r) { return Vector2(r.x + r.width / 2, r.y + r.height / 2); } Vector2 top_left(Rectangle r) { return Vector2(r.x, r.y); } Vector2 top_right(Rectangle r) { return Vector2(r.x + r.width, r.y); } Vector2 bottom_left(Rectangle r) { return Vector2(r.x, r.y + r.height); } Vector2 bottom_right(Rectangle r) { return Vector2(r.x + r.width, r.y + r.height); } float left(Rectangle r) { return r.x; } float right(Rectangle r) { return r.x + r.width; } float top(Rectangle r) { return r.y; } float bottom(Rectangle r) { return r.y + r.height; } enum RectangleUnit = Rectangle(0, 0, 1, 1);