docs: public static List<Point2D_F64> createLayout(int numRows, int numCols, double squareWidth, double spaceWidth)
  	{
  		List<Point2D_F64> all = new ArrayList<>();
  
  		double width = (numCols*squareWidth + (numCols-1)*spaceWidth);
  		double height = (numRows*squareWidth + (numRows-1)*spaceWidth);
  
  		double startX = -width/2;
  		double startY = -height/2;
  
  		for( int i = numRows-1; i >= 0; i-- ) {
  			// this will be on the top of the black in the row
  			double y = startY + i*(squareWidth+spaceWidth)+squareWidth;
  
  			List<Point2D_F64> top = new ArrayList<>();
  			List<Point2D_F64> bottom = new ArrayList<>();
  
  			for( int j = 0; j < numCols; j++ ) {
  				double x = startX + j*(squareWidth+spaceWidth);
  
  				top.add( new Point2D_F64(x,y));
  				top.add( new Point2D_F64(x+squareWidth,y));
  				bottom.add( new Point2D_F64(x,y-squareWidth));
  				bottom.add( new Point2D_F64(x + squareWidth, y - squareWidth));
  			}
  
  			all.addAll(top);
  			all.addAll(bottom);
  		}
  
  		return all;
  	}