public void setGraphPerspective(GraphPerspectiveInfo<V, E> graphInfo) {

		/*
			Current Issues (see SCR 9208):
			-the given data is not created correctly--the memento is using location information
			 from when the navigation takes place, which may be after the user has moved the
			 graph (panned it by hand).  So, we really need to record the info at the point when
			 the user first clicks or when the location is first set.
		
			-How to handle the case where the user moves vertices that are on the navigation stack?
			--Use this algorithm and then ensure that the cursor is on the screen.
		
		*/

		if (graphInfo == null) {
			return;
		}

		// Note: Using this method implies a major structural change in the graph
		stopAllAnimation();

		if (!graphInfo.isRestoreZoom()) {
			// note: if we want to support this, then we will have to adjust the translate
			//       coordinates based upon the differences in zoom.
			Msg.error(this, "Restoring the view coordinates without " +
				"restoring the zoom is currently not supported.", new AssertException());
		}

		RenderContext<V, E> renderContext = primaryViewer.getRenderContext();
		MultiLayerTransformer multiLayerTransformer = renderContext.getMultiLayerTransformer();

		// restore the current transform before we
		setGraphScale(graphInfo.getZoom());

		Point layoutPoint = graphInfo.getLayoutTranslateCoordinates();
		multiLayerTransformer.getTransformer(Layer.LAYOUT)
				.setTranslate(layoutPoint.x,
					layoutPoint.y);

		Point viewPoint = graphInfo.getViewTranslateCoordinates();
		multiLayerTransformer.getTransformer(Layer.VIEW).setTranslate(viewPoint.x, viewPoint.y);
	}
Will schedule the fitting work to happen now if now work is being done, or later otherwis
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/VisualGraphViewUpdater.java