private int compareVerticesByLayoutPosition(FcgVertex v1, FcgVertex v2) {

		Layout<FcgVertex, FcgEdge> layout = viewer.getGraphLayout();

		FcgLevel l1 = v1.getLevel();
		FcgLevel l2 = v2.getLevel();
		int result = l1.compareTo(l2);
		if (result != 0) {

			//  prefer the parent level over all
			if (l1.equals(parentLevel)) {
				return -1;
			}
			else if (l2.equals(parentLevel)) {
				return 1;
			}

			return result;
		}

		Point2D p1 = layout.apply(v1);
		Point2D p2 = layout.apply(v2);
		return (int) (p1.getX() - p2.getX());
	}
Constructor

@param sources all vertices that are the source of the expansion.  This will be either a
       single vertex, clicked by the user, or all vertices of a source level being expanded
@param parentLevel a.k.a, the source vertex level for the vertex that is the source of the 
		  new vertices
@param expandingLevel the level of the new vertices
@param newVertices the expanding vertices; those that are emanating from the parent
@param newEdges the new edges being added as a result of adding the new vertices
@param allParentLevelEdges all edges from all siblings of the parent vertex
@param isIncoming true if the newly added vertices are callers of the source vertex; 
		  false if the newly added vertices are called by the source vertex
@param viewer the viewer that is painting the graph.  This is needed to sort by layout
       position
Ghidra/Features/GraphFunctionCalls/src/main/java/functioncalls/graph/job/FcgExpandingVertexCollection.java