private Rectangle getTotalGraphSize(Map<V, Point2D> vertexLocationMap,
			com.google.common.base.Function<V, Shape> vertexShapeTransformer) {

		// note: do not include edges in the size of the graph at this point, as some layouts use
		//       custom edge routing after this method is called
		Set<V> vertices = vertexLocationMap.keySet();
		Set<E> edges = Collections.emptySet();

		Function<V, Rectangle> vertexToBounds = v -> {

			Shape s = vertexShapeTransformer.apply(v);
			Rectangle bounds = s.getBounds();
			Point2D p = vertexLocationMap.get(v);
			bounds.setLocation(new Point((int) p.getX(), (int) p.getY()));
			return bounds;
		};

		if (!usesEdgeArticulations()) {

			Rectangle bounds =
				GraphViewerUtils.getBoundsForVerticesInLayoutSpace(vertices, vertexToBounds);
			return bounds;
		}

		Function<E, List<Point2D>> edgeToArticulations = e -> Collections.emptyList();
		Rectangle bounds = GraphViewerUtils.getTotalGraphSizeInLayoutSpace(vertices, edges,
			vertexToBounds, edgeToArticulations);
		return bounds;
	}
Returns a location for the given vertex that is centered within its cell

@param v the vertex
@param col the vertex's column in the grid
@param row the vertex's row in the grid
@param bounds the bounds of the vertex in the layout space
@return the centered location
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/layout/AbstractVisualGraphLayout.java