public Icon modify(Icon icon, GThemeValueMap values) {
		Icon modified = icon;
		if (size != null) {
			modified = ResourceManager.getScaledIcon(modified, size.width, size.height);
		}
		if (disabled) {
			modified = ResourceManager.getDisabledIcon(modified);
		}
		if (mirror) {
			modified = new ReflectedIcon(modified, true);
		}
		if (flip) {
			modified = new ReflectedIcon(modified, false);
		}
		if (rotation != null) {
			modified = new RotateIcon(modified, rotation);
		}
		if (translation != null) {
			modified = new TranslateIcon(modified, translation.x, translation.y);
		}
		if (overlayIconValues != null) {
			MultiIcon multiIcon = new MultiIcon(modified);
			for (IconValue iconValue : overlayIconValues) {
				multiIcon.addIcon(iconValue.get(values));
			}
			modified = multiIcon;
		}
		return modified;
	}
Modifies the given icon by the any of the modifiers set.
@param icon the icon to be modified
@param values the ThemeValueMap needed if the modify action is to overlay other icons. The 
values are used to resolve indirect overlay icon references
@return A new Icon that is a modified version of the given icon
Ghidra/Framework/Gui/src/main/java/generic/theme/IconModifier.java