public static Rectangle GetInscribedSquare(this CircularCloudLayouter layouter) { // Abs because our coordinates may be negative var width = Math.Min(Math.Abs(layouter.GetMaxXCoord() - layouter.GetMinXCoord()), Math.Abs(layouter.GetMaxYCoord() - layouter.GetMinYCoord())); var height = width; return(new Rectangle(layouter.Center.X - width / 2, layouter.Center.Y - height / 2, width, height)); }
public static int GetMaxXCoord(this CircularCloudLayouter layouter) => layouter.GetAllRectangles().Max(r => r.X + r.Width);
public static int GetMaxYCoord(this CircularCloudLayouter layouter) => layouter.GetAllRectangles().Max(r => r.Y + r.Height);
public static int GetMinYCoord(this CircularCloudLayouter layouter) => layouter.GetAllRectangles().Min(r => r.Y);