@Override
	protected Map<FGVertex, Point2D> getGroupingDestinationLocations(boolean isRelayout,
			Point2D groupVertexDestinationLocation) {

		if (groupVertexDestinationLocation == null) {
			groupVertexDestinationLocation = groupVertexCurrentLocation;
		}

		// 'isRelayout' or not, we always want our grouped vertices to end up 
		// at the same locations...
		Map<FGVertex, Point2D> locations = new HashMap<>();

		// put the grouped vertices at the same destination as the group
		for (FGVertex vertex : verticesToBeRemoved) {
			locations.put(vertex, groupVertexDestinationLocation);
		}

		// ...however, the group vertex will either be at the given location, or the layout 
		// location
		if (!isRelayout) {
			// not a relayout--specify the location
			locations.put(groupVertex, groupVertexDestinationLocation);
		}

		return locations;
	}
Constructor - used when updating an existing group

@param controller the controller of the graph to be ungrouped
@param groupVertex The group vertex to be ungrouped
@param verticesToGroup the vertices to combine into a group
@param useAnimation whether to use animation
Ghidra/Features/FunctionGraph/src/main/java/ghidra/app/plugin/core/functiongraph/util/job/GroupVertexFunctionGraphJob.java