private Point GetNextPoint(Point start, Size rectangleSize, ICurve curve) { var point = start; while (!CanPutRectangle(point, rectangleSize)) { currentNumber++; point = curve.GetNextPoint(currentNumber); if (!point.IsInside(cloudBorder)) { return(null); } } return(point); }