private GridLocationMap<V, E> copy() {
		GridLocationMap<V, E> map = new GridLocationMap<>();
		map.rootColumn = rootColumn;

		Set<Entry<V, GridPoint>> entries = vertexPoints.entrySet();
		for (Entry<V, GridPoint> entry : entries) {
			map.set(entry.getKey(), new GridPoint(entry.getValue()));
		}

		Set<Entry<E, List<GridPoint>>> edgeEntries = edgePoints.entrySet();
		for (Entry<E, List<GridPoint>> entry : edgeEntries) {
			List<GridPoint> points = entry.getValue();
			List<GridPoint> copy = new ArrayList<>(points.size());
			points.forEach(p -> copy.add(new GridPoint(p)));
			map.setArticulations(entry.getKey(), copy);
		}

		return map;
	}
Creates a string representation of this grid
@return a string representation of this grid
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/layout/GridLocationMap.java