@Override
	protected void updateOpacity(double percentComplete) {

		/*
		 	Aesthetic Note:  due to the colors used in the graph in conjunction with the
		 	alpha used here, when using the same opacity for the vertices and the edges, the
		 	edges can be seen through the vertices, which looks bad.   To fix this, have the
		 	edges be less visible until the vertices are more opaque.
		 */
		double x = percentComplete;
		double x2 = x * x;  					 // change slower than x
		double remaining = 1 - percentComplete;  // start opacity towards the end 
		double y = x2 - remaining;

		//Msg.debug(this, String.format("%%: %.3f - x^2: %.3f - remaining: %.3f - edge alpha: %.3f",
		//	percentComplete, (x * x), remaining, y));

		Set<FcgVertex> newVertices = newVertexCollection.getNewVertices();

		double vertexAlpha = x;
		double edgeAlpha = Math.max(y, 0);
		for (FcgVertex v : newVertices) {
			v.setAlpha(vertexAlpha);
		}

		Iterable<FcgEdge> newEdges = newVertexCollection.getNewEdges();
		for (FcgEdge edge : newEdges) {
			edge.setAlpha(edgeAlpha);
		}
	}
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