private static <V, E> Point2D getVertexCenterPointInGraphSpace(VisualizationServer<V, E> viewer,
			V vertex) {
		Layout<V, E> layout = viewer.getGraphLayout();
		RenderContext<V, E> renderContext = viewer.getRenderContext();
		MultiLayerTransformer transformer = renderContext.getMultiLayerTransformer();
		Point2D vertex1CenterInLayoutSpace = layout.apply(vertex);
		return transformer.transform(Layer.LAYOUT, vertex1CenterInLayoutSpace);
	}
Transforms the given edge loop shape to graph space, which includes updating
the size and location of the loop to be relative to the vertex.

@param edgeLoopShape The shape to transform
@param vertexShape The shape of the vertex for which the edge is being created
@param x The x coordinate of the vertex
@param y The y coordinate of the vertex
@return the transformed edge loop shape
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/GraphViewerUtils.java