@Override
		public void paint(GGlassPane glassPane, Graphics g) {

			Color background = Palette.getColor("lightsteelblue");
			g.setColor(background);

			Rectangle defaultBounds = component.getBounds();

			Rectangle bounds =
				SwingUtilities.convertRectangle(component.getParent(), defaultBounds, glassPane);
			g.fillRect(bounds.x, bounds.y, bounds.width, bounds.height);

			int width = defaultBounds.width;
			int height = defaultBounds.height;

			double transition = 1 - percentComplete;

			double smallest = .5;
			double shrinkage = smallest;
			if (transition > smallest) {
				shrinkage = transition;
			}
			else if (transition < (1 - smallest)) {
				shrinkage = 1 - transition;
			}

			int biggest = Math.min(defaultBounds.width, defaultBounds.height);
			double maxShrink = biggest * .50;
			int offset = (int) (maxShrink - (maxShrink * shrinkage));

			int x = defaultBounds.x + offset;
			int y = defaultBounds.y + offset;
			int w = defaultBounds.width - (offset * 2);
			int h = defaultBounds.height - (offset * 2);

			Rectangle emphasizedBounds = new Rectangle(x, y, w, h);

			emphasizedBounds =
				SwingUtilities.convertRectangle(component.getParent(), emphasizedBounds, glassPane);

			Graphics2D g2d = (Graphics2D) g;

			int offsetX = emphasizedBounds.x - ((width - defaultBounds.width) >> 1);
			int offsetY = emphasizedBounds.y - ((height - defaultBounds.height) >> 1);

			g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
				RenderingHints.VALUE_INTERPOLATION_BILINEAR);

			// spin count: 1 spin = 1.0; 2 spins = .5; 3 spins = .33
			double spinDivisor = .5;
			double cycleAndProgress = percentComplete / spinDivisor;
			int cycle = (int) cycleAndProgress;
			double progress = cycleAndProgress - cycle;

			int startDegree = 360;
			int degrees = (int) (startDegree * progress);
			double rad = Math.toRadians(degrees);

			double cx = emphasizedBounds.getCenterX();
			double cy = emphasizedBounds.getCenterY();
			g2d.rotate(rad, cx, cy);
			g.setColor(Colors.BORDER);

			int iw = emphasizedBounds.width;
			int ih = emphasizedBounds.height;
			g.drawRect(offsetX, offsetY, iw, ih);
			g.drawImage(image, offsetX, offsetY, iw, ih, null);
		}
Returns the {@link GGlassPane} for the given component

@param c the component
@return the glass pane
Ghidra/Framework/Docking/src/main/java/docking/util/AnimationUtils.java