private void routeDownward(Vertex2d start, Vertex2d end, FGEdge e,
			Vertex2dFactory vertex2dFactory, List<Point2D> articulations) {

		lighten(e);

		int delta = end.rowIndex - start.rowIndex;
		int distanceSpacing = delta * EDGE_ENDPOINT_DISTANCE_MULTIPLIER;

		double x1 = start.getX() - distanceSpacing; // update for extra spacing
		double y1 = start.getY(); // hidden
		articulations.add(new Point2D.Double(x1, y1));

		double x2 = x1; // same distance over
		double y2 = end.getY();
		articulations.add(new Point2D.Double(x2, y2));

		double x3 = end.getX() + (-distanceSpacing);
		double y3 = y2;

		routeAroundColumnVertices(start, end, vertex2dFactory, articulations, x3);

		articulations.add(new Point2D.Double(x3, y3));

		double x4 = end.getX();
		double y4 = y3;
		articulations.add(new Point2D.Double(x4, y4)); // point is hidden behind the vertex

	}
An amount by which edges entering a vertex from the left are offset to avoid overlapping
Ghidra/Features/FunctionGraphDecompilerExtension/src/main/java/ghidra/app/plugin/core/functiongraph/graph/layout/DecompilerNestedLayout.java