private Map<FGVertex, Point2D> getCurrentVertexLocations() {
		FGController fgController = getController();
		FGView view = fgController.getView();
		VisualizationViewer<FGVertex, FGEdge> viewer = view.getPrimaryGraphViewer();
		Layout<FGVertex, FGEdge> graphLayout = viewer.getGraphLayout();
		Graph<FGVertex, FGEdge> graph = graphLayout.getGraph();
		Collection<FGVertex> currentVertices = graph.getVertices();
		Map<FGVertex, Point2D> map = new HashMap<>();
		for (FGVertex vertex : currentVertices) {
			if (vertex == this) {
				// not sure if we need to do this, but, conceptually, we are getting the locations
				// in the graph before this group node is installed
				continue;
			}
			Point2D point2D = graphLayout.apply(vertex);
			map.put(vertex, new Point((int) point2D.getX(), (int) point2D.getY()));
		}
		return map;
	}
Creates a new group based upon this one, but with the given vertices (and incident edges)
removed. 

@param verticesToRemove the vertices to not include in the new group
@return the new group
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/graph/vertex/GroupedFunctionGraphVertex.java