private void initializeLayoutLocations(Function<V, Shape> transformer, Collection<V> vertices,
			TaskMonitor monitor) throws CancelledException {

		// create this class's rows from the grid
		Collection<Row<V>> gridRows = gridLocations.rowsMap().values();
		for (Row<V> row : gridRows) {
			rowsByIndex.put(row.index, row);
		}

		//
		// Go through all the columns and rows looking for candidate vertices in order to 
		// find the minimum row height and column width for each row and column (which is the
		// largest values found).
		//
		for (V vertex : vertices) {
			monitor.checkCancelled();

			Row<V> row = row(vertex);
			Column<V> column = col(vertex);
			Shape shape = transformer.apply(vertex);
			Rectangle bounds = shape.getBounds();
			if (bounds.width > column.width) {
				column.width = bounds.width;
			}
			if (bounds.height > row.height) {
				row.height = bounds.height;
			}
		}

		//
		// Calculate offset locations (y values) from row heights (plus any padding)
		//
		int offset = 0;
		int n = getRowCount();
		for (int i = 0; i < n; i++) {
			monitor.checkCancelled();

			Row<V> row = row(i);
			row.y = offset;
			offset += row.getPaddedHeight(isCondensed);
		}

		//
		// Calculate offset locations (x values) from row widths (plus any padding)
		//

		//
		// TODO instead of looping by index, we could loop by Column, using a double index
		//      value which is the index, followed by an offset, so, 3.25 would be column
		//      3, pushed .25% of column 3's width to the right; -3.25 would be column 3, pulled
		//      .25% of column 3's width to the left.  This allows us to control the offset of
		//      the vertex within its column.
		//

		offset = 0;
		n = getColumnCount();
		for (int i = 0; i < n; i++) {
			monitor.checkCancelled();

			Column<V> column = col(i);
			column.x = offset;
			offset += column.getPaddedWidth(isCondensed);
		}
	}
Returns the rows in this location map, sorted from lowest index to highest 

@return the rows in this location map, sorted from lowest index to highest
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/layout/LayoutLocationMap.java