public static <V, E> V getVertex(MouseEvent e, VisualizationViewer<V, E> viewer) {
		if (e == null) {
			return null;
		}

		Rectangle2D footprintRectangle = getFootprint(e);
		LayoutModel<V> layoutModel = viewer.getVisualizationModel().getLayoutModel();
		GraphElementAccessor<V, E> pickSupport = viewer.getPickSupport();
		if (pickSupport == null) {
			return null;
		}

		if (pickSupport instanceof ShapePickSupport) {
			ShapePickSupport<V, E> shapePickSupport =
				(ShapePickSupport<V, E>) pickSupport;
			return shapePickSupport.getVertex(layoutModel, footprintRectangle);
		}

		TransformSupport<V, E> transformSupport =
			viewer.getTransformSupport();
		Point2D layoutPoint = transformSupport.inverseTransform(viewer, e.getPoint());
		return pickSupport.getVertex(layoutModel, layoutPoint.getX(), layoutPoint.getY());
	}
Returns the vertex under the given mouse event

@param <V> the vertex type
@param <E> the edge type
@param e the event
@param viewer the graph viewer
@return the vertex
Ghidra/Features/GraphServices/src/main/java/ghidra/graph/visualization/mouse/JgtUtils.java