private int calculateHeightPadding(boolean isCondensed) {

		// give each successive level
		int basePadding = isCondensed ? GraphViewerUtils.EXTRA_LAYOUT_ROW_SPACING_CONDENSED
				: GraphViewerUtils.EXTRA_LAYOUT_ROW_SPACING;

		double separationFactor = expandingLevel.getDistance();

		/*
		 	Let's scale the distance between 2 rows.  As the level increases so too should the
		 	distance, based upon how busyness (how many edges) of the new level being added.
		 		-If the new level is not busy, then keep the standard distance;
		 		-If the new level is busy, increase the y-distance, up to the max, based upon
		 		 the busyness 
		 	
		 */
		List<FcgVertex> allLevelVertices = newVertexCollection.getAllVerticesAtNewLevel();
		int count = allLevelVertices.size();

		// grow each layer more than linear to add space for the edges
		double to = 1.25; // 1.5;
		double power = Math.pow(separationFactor, to);
		int maxPadding = (int) (basePadding * power);

		// range from 0-1 (%) based on edge count, with 20 being the high-side
		int delta = maxPadding - basePadding;
		double percent = Math.min(count / 20f, 1);
		int padding = basePadding + (int) (delta * percent);
		return padding;
	}
Constructor

@param viewer the graph viewer
@param newVertexCollection the collection of new vertices and edges being addeds
@param useAnimation true to use animation
Ghidra/Features/GraphFunctionCalls/src/main/java/functioncalls/graph/job/BowTieExpandVerticesJob.java