// Copyright 2000, CERN, Geneva, Switzerland and University of Santa Cruz, California, U.S.A. package org.freehep.graphicsio.ps; import java.awt.Color; /** * * @author Charles Loomis * @version $Id: MappedColor.java 8584 2006-08-10 23:06:37Z duns $ */ public class MappedColor extends java.awt.Color { /** * Index of the color in the color map. */ protected int colorIndex; /** * Value of the brightness/darkness of this color. Larger values indicate * darker colors and vice versa. */ protected int brightness; /** * Constructor takes the RGB color components and the color index. */ public MappedColor(int r, int g, int b, int colorIndex) { // Call the Color constructor. super(r, g, b); // Set the color index and brightness. this.colorIndex = colorIndex; brightness = 0; } /** * Constructor takes the RGB color components, the color index, and the * brightness. */ public MappedColor(int r, int g, int b, int colorIndex, int brightness) { // Call the Color constructor. super(r, g, b); // Set the color index and brightness. this.colorIndex = colorIndex; this.brightness = brightness; } /** * Make a brightened color based on this color. */ public Color brighter() { int r = getRed() * 10 / 7; int g = getGreen() * 10 / 7; int b = getBlue() * 10 / 7; r = (int) Math.max(0, Math.min(255, r)); g = (int) Math.max(0, Math.min(255, g)); b = (int) Math.max(0, Math.min(255, b)); return (Color) new MappedColor(r, g, b, colorIndex, brightness - 1); } /** * Make a darkened color based on this color. */ public Color darker() { int r = getRed() * 7 / 10; int g = getGreen() * 7 / 10; int b = getBlue() * 7 / 10; r = (int) Math.max(0, Math.min(255, r)); g = (int) Math.max(0, Math.min(255, g)); b = (int) Math.max(0, Math.min(255, b)); return (Color) new MappedColor(r, g, b, colorIndex, brightness - 1); } /** * Get the brightness of this color. */ public int getBrightness() { return brightness; } /** * Get the tag associated with this color. */ public String getColorTag() { return ColorMap.getTag(colorIndex); } }