protected void condenseEdges(List<Row<V>> rows, Map<E, List<Point2D>> newEdgeArticulations,
			double centerX, double centerY) {

		//
		// Note: we move the articulations and vertices closer together on the x-axis.  We do
		//       not move the y-axis, as that is already as close together as we would like at
		//       this point.
		//
		double condenseFactor = getCondenseFactor();
		Collection<List<Point2D>> edgeArticulations = newEdgeArticulations.values();
		for (List<Point2D> edgePoints : edgeArticulations) {
			for (Point2D point : edgePoints) {
				double currentX = point.getX();
				double currentY = point.getY();

				// move closer to the center
				double deltaX = centerX - currentX;
				double offsetX = (deltaX * condenseFactor) + currentX;

				point.setLocation(offsetX, currentY);
			}
		}
	}
Returns a location for the given vertex that is centered within its cell

@param v the vertex
@param col the vertex's column in the grid
@param row the vertex's row in the grid
@param bounds the bounds of the vertex in the layout space
@return the centered location
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/layout/AbstractVisualGraphLayout.java