protected void paintDropShadow(RenderContext<V, E> rc, GraphicsDecorator g, Shape shape) {

		if (!isScaledPastVertexInteractionThreshold(rc)) {
			return;
		}

		int upperOffset = -3;
		int grayOffset = 15;
		int blackOffset = 5;

		// the upper-offset ensures the upper and left side of the vertex are discernable when tiny
		g.setColor(DROP_SHADOW_LIGHT);
		AffineTransform xform3 = AffineTransform.getTranslateInstance(upperOffset, upperOffset);
		Shape xShape3 = xform3.createTransformedShape(shape);
		g.fill(xShape3);

		AffineTransform xform = AffineTransform.getTranslateInstance(grayOffset, grayOffset);
		Shape xShape = xform.createTransformedShape(shape);
		g.fill(xShape);

		g.setColor(DROP_SHADOW_DARK);
		AffineTransform xform2 = AffineTransform.getTranslateInstance(blackOffset, blackOffset);
		Shape xShape2 = xform2.createTransformedShape(shape);
		g.fill(xShape2);
	}
Creates a copy of the given {@link GraphicsDecorator} that may have scaling tweaked to 
handle {@link VisualVertex#getEmphasis()} emphasized vertices.
@param g the graphics
@param vertex the vertex
@param rc the render context
@param layout the graph layout
@return the new graphics
Ghidra/Framework/Graph/src/main/java/ghidra/graph/viewer/vertex/AbstractVisualVertexRenderer.java