// 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: ColorMap.java 8584 2006-08-10 23:06:37Z duns $ */ public class ColorMap { final public static int red = 0; final public static int green = 1; final public static int blue = 2; final public static int cyan = 3; final public static int magenta = 4; final public static int yellow = 5; final public static int orange = 6; final public static int pink = 7; final public static int white = 8; final public static int lightGray = 9; final public static int gray = 10; final public static int darkGray = 11; final public static int black = 12; final public static int redAsGray = 13; final public static int greenAsGray = 14; final public static int blueAsGray = 15; final public static int cyanAsGray = 16; final public static int magentaAsGray = 17; final public static int yellowAsGray = 18; final public static int orangeAsGray = 19; final public static int pinkAsGray = 20; final public static int whiteAsGray = 21; final public static int lightGrayAsGray = 22; final public static int grayAsGray = 23; final public static int darkGrayAsGray = 24; final public static int blackAsGray = 25; final public static int redInvisible = 26; final public static int greenInvisible = 27; final public static int blueInvisible = 28; final public static int cyanInvisible = 29; final public static int magentaInvisible = 30; final public static int yellowInvisible = 31; final public static int orangeInvisible = 32; final public static int pinkInvisible = 33; final public static int whiteInvisible = 34; final public static int lightGrayInvisible = 35; final public static int grayInvisible = 36; final public static int darkGrayInvisible = 37; final public static int blackInvisible = 38; final public static String[] psColorTag = { "Cr", "Cg", "Cb", "Cc", "Cm", "Cy", "Co", "Cp", "Cw", "Cgrl", "Cgr", "Cgrd", "Ck", "CGr", "CGg", "CGb", "CGc", "CGm", "CGy", "CGo", "CGp", "CGw", "CGgrl", "CGgr", "CGgrd", "CGk", "CIr", "CIg", "CIb", "CIc", "CIm", "CIy", "CIo", "CIp", "CIw", "CIgrl", "CIgr", "CIgrd", "CIk" }; // The "foreground" colors. They remain true colors within the // display and print color maps. In the grayscale and b&w color // maps these always appear as black. final protected static MappedColor displayRed = new MappedColor(255, 0, 0, red); final protected static MappedColor printRed = new MappedColor(255, 84, 84, red); final protected static MappedColor grayRed = new MappedColor(0, 0, 0, red); final protected static MappedColor bwRed = new MappedColor(0, 0, 0, red); final protected static MappedColor displayGreen = new MappedColor(0, 255, 0, green); final protected static MappedColor printGreen = new MappedColor(84, 255, 84, green); final protected static MappedColor grayGreen = new MappedColor(0, 0, 0, green); final protected static MappedColor bwGreen = new MappedColor(0, 0, 0, green); final protected static MappedColor displayBlue = new MappedColor(0, 0, 255, blue); final protected static MappedColor printBlue = new MappedColor(84, 84, 255, blue); final protected static MappedColor grayBlue = new MappedColor(0, 0, 0, blue); final protected static MappedColor bwBlue = new MappedColor(0, 0, 0, blue); final protected static MappedColor displayCyan = new MappedColor(0, 255, 255, cyan); final protected static MappedColor printCyan = new MappedColor(0, 255, 255, cyan); final protected static MappedColor grayCyan = new MappedColor(0, 0, 0, cyan); final protected static MappedColor bwCyan = new MappedColor(0, 0, 0, cyan); final protected static MappedColor displayMagenta = new MappedColor(255, 0, 255, magenta); final protected static MappedColor printMagenta = new MappedColor(255, 0, 255, magenta); final protected static MappedColor grayMagenta = new MappedColor(0, 0, 0, magenta); final protected static MappedColor bwMagenta = new MappedColor(0, 0, 0, magenta); final protected static MappedColor displayYellow = new MappedColor(255, 255, 0, yellow); final protected static MappedColor printYellow = new MappedColor(255, 255, 0, yellow); final protected static MappedColor grayYellow = new MappedColor(0, 0, 0, yellow); final protected static MappedColor bwYellow = new MappedColor(0, 0, 0, yellow); final protected static MappedColor displayOrange = new MappedColor(255, 200, 0, orange); final protected static MappedColor printOrange = new MappedColor(255, 200, 0, orange); final protected static MappedColor grayOrange = new MappedColor(0, 0, 0, orange); final protected static MappedColor bwOrange = new MappedColor(0, 0, 0, orange); final protected static MappedColor displayPink = new MappedColor(255, 175, 175, pink); final protected static MappedColor printPink = new MappedColor(255, 175, 175, pink); final protected static MappedColor grayPink = new MappedColor(0, 0, 0, pink); final protected static MappedColor bwPink = new MappedColor(0, 0, 0, pink); final protected static MappedColor displayWhite = new MappedColor(255, 255, 255, white); final protected static MappedColor printWhite = new MappedColor(255, 255, 255, white); final protected static MappedColor grayWhite = new MappedColor(0, 0, 0, white); final protected static MappedColor bwWhite = new MappedColor(0, 0, 0, white); final protected static MappedColor displayLightGray = new MappedColor(192, 192, 192, lightGray); final protected static MappedColor printLightGray = new MappedColor(192, 192, 192, lightGray); final protected static MappedColor grayLightGray = new MappedColor(0, 0, 0, lightGray); final protected static MappedColor bwLightGray = new MappedColor(0, 0, 0, lightGray); final protected static MappedColor displayGray = new MappedColor(128, 128, 128, gray); final protected static MappedColor printGray = new MappedColor(128, 128, 128, gray); final protected static MappedColor grayGray = new MappedColor(0, 0, 0, gray); final protected static MappedColor bwGray = new MappedColor(0, 0, 0, gray); final protected static MappedColor displayDarkGray = new MappedColor(64, 64, 64, darkGray); final protected static MappedColor printDarkGray = new MappedColor(64, 64, 64, darkGray); final protected static MappedColor grayDarkGray = new MappedColor(0, 0, 0, darkGray); final protected static MappedColor bwDarkGray = new MappedColor(0, 0, 0, darkGray); final protected static MappedColor displayBlack = new MappedColor(0, 0, 0, black); final protected static MappedColor printBlack = new MappedColor(0, 0, 0, black); final protected static MappedColor grayBlack = new MappedColor(0, 0, 0, black); final protected static MappedColor bwBlack = new MappedColor(0, 0, 0, black); // The "fill" colors. These retain their colors under the display // and print color maps. Under the grayscale color map, these // become light shades of gray. These become white under the b&w // color map. final protected static MappedColor displayRedAsGray = new MappedColor(255, 0, 0, redAsGray); final protected static MappedColor printRedAsGray = new MappedColor(255, 84, 84, redAsGray); final protected static MappedColor grayRedAsGray = new MappedColor(192, 192, 192, redAsGray); final protected static MappedColor bwRedAsGray = new MappedColor(255, 255, 255, redAsGray); final protected static MappedColor displayGreenAsGray = new MappedColor(0, 255, 0, greenAsGray); final protected static MappedColor printGreenAsGray = new MappedColor(84, 255, 84, greenAsGray); final protected static MappedColor grayGreenAsGray = new MappedColor(255, 255, 255, greenAsGray); final protected static MappedColor bwGreenAsGray = new MappedColor(255, 255, 255, greenAsGray); final protected static MappedColor displayBlueAsGray = new MappedColor(0, 0, 255, blueAsGray); final protected static MappedColor printBlueAsGray = new MappedColor(84, 84, 255, blueAsGray); final protected static MappedColor grayBlueAsGray = new MappedColor(128, 128, 128, blueAsGray); final protected static MappedColor bwBlueAsGray = new MappedColor(255, 255, 255, blueAsGray); final protected static MappedColor displayCyanAsGray = new MappedColor(0, 255, 255, cyanAsGray); final protected static MappedColor printCyanAsGray = new MappedColor(0, 255, 255, cyanAsGray); final protected static MappedColor grayCyanAsGray = new MappedColor(192, 192, 192, cyanAsGray); final protected static MappedColor bwCyanAsGray = new MappedColor(255, 255, 255, cyanAsGray); final protected static MappedColor displayMagentaAsGray = new MappedColor( 255, 0, 255, magentaAsGray); final protected static MappedColor printMagentaAsGray = new MappedColor( 255, 0, 255, magentaAsGray); final protected static MappedColor grayMagentaAsGray = new MappedColor(128, 128, 128, magentaAsGray); final protected static MappedColor bwMagentaAsGray = new MappedColor(255, 255, 255, magentaAsGray); final protected static MappedColor displayYellowAsGray = new MappedColor( 255, 255, 0, yellowAsGray); final protected static MappedColor printYellowAsGray = new MappedColor(255, 255, 0, yellowAsGray); final protected static MappedColor grayYellowAsGray = new MappedColor(255, 255, 255, yellowAsGray); final protected static MappedColor bwYellowAsGray = new MappedColor(255, 255, 255, yellowAsGray); final protected static MappedColor displayOrangeAsGray = new MappedColor( 255, 200, 0, orangeAsGray); final protected static MappedColor printOrangeAsGray = new MappedColor(255, 200, 0, orangeAsGray); final protected static MappedColor grayOrangeAsGray = new MappedColor(192, 192, 192, orangeAsGray); final protected static MappedColor bwOrangeAsGray = new MappedColor(255, 255, 255, orangeAsGray); final protected static MappedColor displayPinkAsGray = new MappedColor(255, 175, 175, pinkAsGray); final protected static MappedColor printPinkAsGray = new MappedColor(255, 175, 175, pinkAsGray); final protected static MappedColor grayPinkAsGray = new MappedColor(255, 255, 255, pinkAsGray); final protected static MappedColor bwPinkAsGray = new MappedColor(255, 255, 255, pinkAsGray); final protected static MappedColor displayWhiteAsGray = new MappedColor( 255, 255, 255, whiteAsGray); final protected static MappedColor printWhiteAsGray = new MappedColor(255, 255, 255, whiteAsGray); final protected static MappedColor grayWhiteAsGray = new MappedColor(0, 0, 0, whiteAsGray); final protected static MappedColor bwWhiteAsGray = new MappedColor(0, 0, 0, whiteAsGray); final protected static MappedColor displayLightGrayAsGray = new MappedColor( 192, 192, 192, lightGrayAsGray); final protected static MappedColor printLightGrayAsGray = new MappedColor( 192, 192, 192, lightGrayAsGray); final protected static MappedColor grayLightGrayAsGray = new MappedColor( 64, 64, 64, lightGrayAsGray); final protected static MappedColor bwLightGrayAsGray = new MappedColor(255, 255, 255, lightGrayAsGray); final protected static MappedColor displayGrayAsGray = new MappedColor(128, 128, 128, grayAsGray); final protected static MappedColor printGrayAsGray = new MappedColor(128, 128, 128, grayAsGray); final protected static MappedColor grayGrayAsGray = new MappedColor(128, 128, 128, grayAsGray); final protected static MappedColor bwGrayAsGray = new MappedColor(255, 255, 255, grayAsGray); final protected static MappedColor displayDarkGrayAsGray = new MappedColor( 64, 64, 64, darkGrayAsGray); final protected static MappedColor printDarkGrayAsGray = new MappedColor( 64, 64, 64, darkGrayAsGray); final protected static MappedColor grayDarkGrayAsGray = new MappedColor( 192, 192, 192, darkGrayAsGray); final protected static MappedColor bwDarkGrayAsGray = new MappedColor(255, 255, 255, darkGrayAsGray); final protected static MappedColor displayBlackAsGray = new MappedColor(0, 0, 0, blackAsGray); final protected static MappedColor printBlackAsGray = new MappedColor(0, 0, 0, blackAsGray); final protected static MappedColor grayBlackAsGray = new MappedColor(255, 255, 255, blackAsGray); final protected static MappedColor bwBlackAsGray = new MappedColor(255, 255, 255, blackAsGray); // The "background" colors. These retain their colors under the // display and print color maps. Under the grayscale color map // and the b&w color map these are white. final protected static MappedColor displayRedInvisible = new MappedColor( 255, 0, 0, redInvisible); final protected static MappedColor printRedInvisible = new MappedColor(255, 84, 84, redInvisible); final protected static MappedColor grayRedInvisible = new MappedColor(255, 255, 255, redInvisible); final protected static MappedColor bwRedInvisible = new MappedColor(255, 255, 255, redInvisible); final protected static MappedColor displayGreenInvisible = new MappedColor( 0, 255, 0, greenInvisible); final protected static MappedColor printGreenInvisible = new MappedColor( 84, 255, 84, greenInvisible); final protected static MappedColor grayGreenInvisible = new MappedColor( 255, 255, 255, greenInvisible); final protected static MappedColor bwGreenInvisible = new MappedColor(255, 255, 255, greenInvisible); final protected static MappedColor displayBlueInvisible = new MappedColor( 0, 0, 255, blueInvisible); final protected static MappedColor printBlueInvisible = new MappedColor(84, 84, 255, blueInvisible); final protected static MappedColor grayBlueInvisible = new MappedColor(255, 255, 255, blueInvisible); final protected static MappedColor bwBlueInvisible = new MappedColor(255, 255, 255, blueInvisible); final protected static MappedColor displayCyanInvisible = new MappedColor( 0, 255, 255, cyanInvisible); final protected static MappedColor printCyanInvisible = new MappedColor(0, 255, 255, cyanInvisible); final protected static MappedColor grayCyanInvisible = new MappedColor(255, 255, 255, cyanInvisible); final protected static MappedColor bwCyanInvisible = new MappedColor(255, 255, 255, cyanInvisible); final protected static MappedColor displayMagentaInvisible = new MappedColor( 255, 0, 255, magentaInvisible); final protected static MappedColor printMagentaInvisible = new MappedColor( 255, 0, 255, magentaInvisible); final protected static MappedColor grayMagentaInvisible = new MappedColor( 255, 255, 255, magentaInvisible); final protected static MappedColor bwMagentaInvisible = new MappedColor( 255, 255, 255, magentaInvisible); final protected static MappedColor displayYellowInvisible = new MappedColor( 255, 255, 0, yellowInvisible); final protected static MappedColor printYellowInvisible = new MappedColor( 255, 255, 0, yellowInvisible); final protected static MappedColor grayYellowInvisible = new MappedColor( 255, 255, 255, yellowInvisible); final protected static MappedColor bwYellowInvisible = new MappedColor(255, 255, 255, yellowInvisible); final protected static MappedColor displayOrangeInvisible = new MappedColor( 255, 200, 0, orangeInvisible); final protected static MappedColor printOrangeInvisible = new MappedColor( 255, 200, 0, orangeInvisible); final protected static MappedColor grayOrangeInvisible = new MappedColor( 255, 255, 255, orangeInvisible); final protected static MappedColor bwOrangeInvisible = new MappedColor(255, 255, 255, orangeInvisible); final protected static MappedColor displayPinkInvisible = new MappedColor( 255, 175, 175, pinkInvisible); final protected static MappedColor printPinkInvisible = new MappedColor( 255, 175, 175, pinkInvisible); final protected static MappedColor grayPinkInvisible = new MappedColor(255, 255, 255, pinkInvisible); final protected static MappedColor bwPinkInvisible = new MappedColor(255, 255, 255, pinkInvisible); final protected static MappedColor displayWhiteInvisible = new MappedColor( 255, 255, 255, whiteInvisible); final protected static MappedColor printWhiteInvisible = new MappedColor( 255, 255, 255, whiteInvisible); final protected static MappedColor grayWhiteInvisible = new MappedColor( 255, 255, 255, whiteInvisible); final protected static MappedColor bwWhiteInvisible = new MappedColor(255, 255, 255, whiteInvisible); final protected static MappedColor displayLightGrayInvisible = new MappedColor( 192, 192, 192, lightGrayInvisible); final protected static MappedColor printLightGrayInvisible = new MappedColor( 192, 192, 192, lightGrayInvisible); final protected static MappedColor grayLightGrayInvisible = new MappedColor( 255, 255, 255, lightGrayInvisible); final protected static MappedColor bwLightGrayInvisible = new MappedColor( 255, 255, 255, lightGrayInvisible); final protected static MappedColor displayGrayInvisible = new MappedColor( 128, 128, 128, grayInvisible); final protected static MappedColor printGrayInvisible = new MappedColor( 128, 128, 128, grayInvisible); final protected static MappedColor grayGrayInvisible = new MappedColor(255, 255, 255, grayInvisible); final protected static MappedColor bwGrayInvisible = new MappedColor(255, 255, 255, grayInvisible); final protected static MappedColor displayDarkGrayInvisible = new MappedColor( 64, 64, 64, darkGrayInvisible); final protected static MappedColor printDarkGrayInvisible = new MappedColor( 64, 64, 64, darkGrayInvisible); final protected static MappedColor grayDarkGrayInvisible = new MappedColor( 255, 255, 255, darkGrayInvisible); final protected static MappedColor bwDarkGrayInvisible = new MappedColor( 255, 255, 255, darkGrayInvisible); final protected static MappedColor displayBlackInvisible = new MappedColor( 0, 0, 0, blackInvisible); final protected static MappedColor printBlackInvisible = new MappedColor(0, 0, 0, blackInvisible); final protected static MappedColor grayBlackInvisible = new MappedColor( 255, 255, 255, blackInvisible); final protected static MappedColor bwBlackInvisible = new MappedColor(255, 255, 255, blackInvisible); // Now define the display color map. final protected static MappedColor[] displayMap = { displayRed, displayGreen, displayBlue, displayCyan, displayMagenta, displayYellow, displayOrange, displayPink, displayWhite, displayLightGray, displayGray, displayDarkGray, displayBlack, displayRedAsGray, displayGreenAsGray, displayBlueAsGray, displayCyanAsGray, displayMagentaAsGray, displayYellowAsGray, displayOrangeAsGray, displayPinkAsGray, displayWhiteAsGray, displayLightGrayAsGray, displayGrayAsGray, displayDarkGrayAsGray, displayBlackAsGray, displayRedInvisible, displayGreenInvisible, displayBlueInvisible, displayCyanInvisible, displayMagentaInvisible, displayYellowInvisible, displayOrangeInvisible, displayPinkInvisible, displayWhiteInvisible, displayLightGrayInvisible, displayGrayInvisible, displayDarkGrayInvisible, displayBlackInvisible }; // Now define the print color map. final protected static MappedColor[] printMap = { printRed, printGreen, printBlue, printCyan, printMagenta, printYellow, printOrange, printPink, printWhite, printLightGray, printGray, printDarkGray, printBlack, printRedAsGray, printGreenAsGray, printBlueAsGray, printCyanAsGray, printMagentaAsGray, printYellowAsGray, printOrangeAsGray, printPinkAsGray, printWhiteAsGray, printLightGrayAsGray, printGrayAsGray, printDarkGrayAsGray, printBlackAsGray, printRedInvisible, printGreenInvisible, printBlueInvisible, printCyanInvisible, printMagentaInvisible, printYellowInvisible, printOrangeInvisible, printPinkInvisible, printWhiteInvisible, printLightGrayInvisible, printGrayInvisible, printDarkGrayInvisible, printBlackInvisible }; // Now define the grayscale color map. final protected static MappedColor[] grayMap = { grayRed, grayGreen, grayBlue, grayCyan, grayMagenta, grayYellow, grayOrange, grayPink, grayWhite, grayLightGray, grayGray, grayDarkGray, grayBlack, grayRedAsGray, grayGreenAsGray, grayBlueAsGray, grayCyanAsGray, grayMagentaAsGray, grayYellowAsGray, grayOrangeAsGray, grayPinkAsGray, grayWhiteAsGray, grayLightGrayAsGray, grayGrayAsGray, grayDarkGrayAsGray, grayBlackAsGray, grayRedInvisible, grayGreenInvisible, grayBlueInvisible, grayCyanInvisible, grayMagentaInvisible, grayYellowInvisible, grayOrangeInvisible, grayPinkInvisible, grayWhiteInvisible, grayLightGrayInvisible, grayGrayInvisible, grayDarkGrayInvisible, grayBlackInvisible }; // Now define the black&white color map. final protected static MappedColor[] bwMap = { bwRed, bwGreen, bwBlue, bwCyan, bwMagenta, bwYellow, bwOrange, bwPink, bwWhite, bwLightGray, bwGray, bwDarkGray, bwBlack, bwRedAsGray, bwGreenAsGray, bwBlueAsGray, bwCyanAsGray, bwMagentaAsGray, bwYellowAsGray, bwOrangeAsGray, bwPinkAsGray, bwWhiteAsGray, bwLightGrayAsGray, bwGrayAsGray, bwDarkGrayAsGray, bwBlackAsGray, bwRedInvisible, bwGreenInvisible, bwBlueInvisible, bwCyanInvisible, bwMagentaInvisible, bwYellowInvisible, bwOrangeInvisible, bwPinkInvisible, bwWhiteInvisible, bwLightGrayInvisible, bwGrayInvisible, bwDarkGrayInvisible, bwBlackInvisible }; // The current map references one of the above color maps. protected MappedColor[] currentColorMap; /** * Constructor takes no arguments. The display color map is the default. */ public ColorMap() { currentColorMap = displayMap; } /** * Change to the display color map. */ public void useDisplayColorMap() { currentColorMap = displayMap; } /** * Change to the print color map. */ public void usePrintColorMap() { currentColorMap = printMap; } /** * Change to the grayscale color map. */ public void useGrayscaleColorMap() { currentColorMap = grayMap; } /** * Change to the black&white color map. */ public void useBlackAndWhiteColorMap() { currentColorMap = bwMap; } /** * Retrieve a mapped color from the color map. */ public MappedColor getMappedColor(int colorIndex) { if (colorIndex < 0 && colorIndex > 38) { return null; } else { return currentColorMap[colorIndex]; } } /** * Retrieve a mapped color as a Java Color from the color map. */ public Color getColor(int colorIndex) { if (colorIndex < 0 && colorIndex > 38) { return null; } else { return (Color) currentColorMap[colorIndex]; } } /** * Get a terse tag which describes which color a particular color index * represents. */ public static String getTag(int colorIndex) { if (colorIndex < 0 && colorIndex > 38) { return null; } else { return psColorTag[colorIndex]; } } }