diff --git a/lib/modules/Colors.pmod b/lib/modules/Colors.pmod index 423565e309f3863ef359ec4985732c86e9d15cb9..9bac87bac5dca405afcba31aeb5fa22baa2d975f 100644 --- a/lib/modules/Colors.pmod +++ b/lib/modules/Colors.pmod @@ -1,450 +1,628 @@ #define COLOR(C,R,G,B) constant C=({R,G,B}) +COLOR(aliceblue,240,248,255); +COLOR(antiquewhite,250,235,215); +COLOR(antiquewhite1,255,239,219); +COLOR(antiquewhite2,238,223,204); +COLOR(antiquewhite3,205,192,176); COLOR(antiquewhite4,139,131,120); -COLOR(gold2,238,201,0); -COLOR(deepskyblue,0,191,255); -COLOR(deeppink3,205,16,118); -COLOR(darkgrey,169,169,169); -COLOR(orange2,238,154,0); -COLOR(slateblue3,105,89,205); -COLOR(cyan3,0,205,205); -COLOR(darkslategrey1,151,255,255); -COLOR(thistle,216,191,216); -COLOR(yellow1,255,255,0); -COLOR(snow4,139,137,137); -COLOR(lightblue2,178,223,238); -COLOR(sienna3,205,104,57); +COLOR(aquamarine,127,255,212); +COLOR(aquamarine1,127,255,212); +COLOR(aquamarine2,118,238,198); +COLOR(aquamarine3,102,205,170); +COLOR(aquamarine4,69,139,116); +COLOR(azure,240,255,255); +COLOR(azure1,240,255,255); +COLOR(azure2,224,238,238); +COLOR(azure3,193,205,205); +COLOR(azure4,131,139,139); +COLOR(beige,245,245,220); COLOR(bisque,255,228,196); -COLOR(lightpink1,255,174,185); -COLOR(sienna,160,82,45); -COLOR(hotpink2,238,106,167); -COLOR(rosybrown,188,143,143); +COLOR(bisque1,255,228,196); +COLOR(bisque2,238,213,183); +COLOR(bisque3,205,183,158); +COLOR(bisque4,139,125,107); +COLOR(black,0,0,0); +COLOR(blanchedalmond,255,235,205); +COLOR(blue,0,0,255); COLOR(blue1,0,0,255); -COLOR(rosybrown3,205,155,155); -COLOR(orange4,139,90,0); -COLOR(lightyellow,255,255,224); -COLOR(seagreen2,78,238,148); -COLOR(tomato3,205,79,57); -COLOR(pink,255,192,203); -COLOR(lavender,230,230,250); -COLOR(lightsteelblue,176,196,222); +COLOR(blue2,0,0,238); COLOR(blue3,0,0,205); -COLOR(lightcyan1,224,255,255); -COLOR(maroon2,238,48,167); -COLOR(cadetblue4,83,134,139); -COLOR(lightpink2,238,162,173); -COLOR(gold4,139,117,0); -COLOR(salmon,250,128,114); -COLOR(lightsalmon1,255,160,122); -COLOR(mediumspringgreen,0,250,154); -COLOR(lightgoldenrod1,255,236,139); -COLOR(grey,190,190,190); -COLOR(coral,255,127,80); -COLOR(maroon3,205,41,144); -COLOR(darkslategrey,47,79,79); +COLOR(blue4,0,0,139); +COLOR(blueviolet,138,43,226); +COLOR(brown,165,42,42); +COLOR(brown1,255,64,64); COLOR(brown2,238,59,59); -COLOR(plum4,139,102,139); -COLOR(lightpink4,139,95,101); -COLOR(orchid4,139,71,137); -COLOR(lightgoldenrodyellow,250,250,210); -COLOR(darkorchid4,104,34,139); -COLOR(azure4,131,139,139); -COLOR(indianred1,255,106,106); -COLOR(skyblue2,126,192,238); -COLOR(red4,139,0,0); +COLOR(brown3,205,51,51); +COLOR(brown4,139,35,35); +COLOR(burlywood,222,184,135); +COLOR(burlywood1,255,211,155); +COLOR(burlywood2,238,197,145); +COLOR(burlywood3,205,170,125); +COLOR(burlywood4,139,115,85); +COLOR(cadetblue,95,158,160); +COLOR(cadetblue1,152,245,255); COLOR(cadetblue2,142,229,238); -COLOR(firebrick,178,34,34); -COLOR(honeydew,240,255,240); -COLOR(honeydew1,240,255,240); -COLOR(forestgreen,34,139,34); -COLOR(rosybrown1,255,193,193); -COLOR(oldlace,253,245,230); -COLOR(peru,205,133,63); -COLOR(lavenderblush4,139,131,134); -COLOR(azure3,193,205,205); -COLOR(rosybrown4,139,105,105); -COLOR(antiquewhite1,255,239,219); -COLOR(lightcoral,240,128,128); -COLOR(dodgerblue2,28,134,238); +COLOR(cadetblue3,122,197,205); +COLOR(cadetblue4,83,134,139); +COLOR(chartreuse,127,255,0); +COLOR(chartreuse1,127,255,0); +COLOR(chartreuse2,118,238,0); +COLOR(chartreuse3,102,205,0); +COLOR(chartreuse4,69,139,0); +COLOR(chocolate,210,105,30); COLOR(chocolate1,255,127,36); -COLOR(paleturquoise1,187,255,255); -COLOR(thistle1,255,225,255); -COLOR(royalblue1,72,118,255); -COLOR(yellowgreen,154,205,50); -COLOR(hotpink1,255,110,180); -COLOR(purple1,155,48,255); -COLOR(azure1,240,255,255); -COLOR(cyan4,0,139,139); -COLOR(darkseagreen4,105,139,105); -COLOR(royalblue2,67,110,238); -COLOR(burlywood,222,184,135); -COLOR(khaki4,139,134,78); -COLOR(darkviolet,148,0,211); -COLOR(navajowhite1,255,222,173); -COLOR(royalblue4,39,64,139); -COLOR(lightyellow1,255,255,224); -COLOR(lightpink3,205,140,149); +COLOR(chocolate2,238,118,33); COLOR(chocolate3,205,102,29); -COLOR(darkslategrey4,82,139,139); -COLOR(aquamarine2,118,238,198); -COLOR(snow3,205,201,201); -COLOR(slategrey2,185,211,238); -COLOR(ivory2,238,238,224); -COLOR(lavenderblush,255,240,245); -COLOR(darkolivegreen,85,107,47); -COLOR(lightsalmon4,139,87,66); -COLOR(ghostwhite,248,248,255); -COLOR(darkorange,255,140,0); -COLOR(sienna1,255,130,71); -COLOR(gold,255,215,0); -COLOR(cornsilk4,139,136,120); -COLOR(khaki1,255,246,143); -COLOR(mistyrose4,139,125,123); -COLOR(honeydew3,193,205,193); -COLOR(palevioletred3,205,104,137); -COLOR(steelblue3,79,148,205); -COLOR(springgreen2,0,238,118); -COLOR(plum,221,160,221); -COLOR(darkslateblue,72,61,139); -COLOR(purple2,145,44,238); -COLOR(mediumpurple,147,112,219); -COLOR(dodgerblue,30,144,255); -COLOR(aquamarine4,69,139,116); -COLOR(lightsteelblue2,188,210,238); +COLOR(chocolate4,139,69,19); +COLOR(coral,255,127,80); COLOR(coral1,255,114,86); +COLOR(coral2,238,106,80); +COLOR(coral3,205,91,69); +COLOR(coral4,139,62,47); +COLOR(cornflowerblue,100,149,237); +COLOR(cornsilk,255,248,220); +COLOR(cornsilk1,255,248,220); +COLOR(cornsilk2,238,232,205); +COLOR(cornsilk3,205,200,177); +COLOR(cornsilk4,139,136,120); +COLOR(cyan,0,255,255); +COLOR(cyan1,0,255,255); +COLOR(cyan2,0,238,238); +COLOR(cyan3,0,205,205); +COLOR(cyan4,0,139,139); +COLOR(darkblue,0,0,139); +COLOR(darkcyan,0,139,139); +COLOR(darkgoldenrod,184,134,11); +COLOR(darkgoldenrod1,255,185,15); +COLOR(darkgoldenrod2,238,173,14); +COLOR(darkgoldenrod3,205,149,12); COLOR(darkgoldenrod4,139,101,8); -COLOR(yellow,255,255,0); +COLOR(darkgreen,0,100,0); +COLOR(darkgrey,169,169,169); +COLOR(darkkhaki,189,183,107); +COLOR(darkmagenta,139,0,139); +COLOR(darkolivegreen,85,107,47); +COLOR(darkolivegreen1,202,255,112); +COLOR(darkolivegreen2,188,238,104); +COLOR(darkolivegreen3,162,205,90); +COLOR(darkolivegreen4,110,139,61); +COLOR(darkorange,255,140,0); +COLOR(darkorange1,255,127,0); +COLOR(darkorange2,238,118,0); +COLOR(darkorange3,205,102,0); +COLOR(darkorange4,139,69,0); COLOR(darkorchid,153,50,204); -COLOR(honeydew2,224,238,224); -COLOR(deepskyblue1,0,191,255); -COLOR(palegreen,152,251,152); -COLOR(lemonchiffon2,238,233,191); +COLOR(darkorchid1,191,62,255); +COLOR(darkorchid2,178,58,238); +COLOR(darkorchid3,154,50,205); +COLOR(darkorchid4,104,34,139); +COLOR(darkred,139,0,0); COLOR(darksalmon,233,150,122); -COLOR(violetred1,255,62,150); -COLOR(firebrick4,139,26,26); -COLOR(olivedrab2,179,238,58); -COLOR(salmon2,238,130,98); +COLOR(darkseagreen,143,188,143); +COLOR(darkseagreen1,193,255,193); +COLOR(darkseagreen2,180,238,180); +COLOR(darkseagreen3,155,205,155); +COLOR(darkseagreen4,105,139,105); +COLOR(darkslateblue,72,61,139); +COLOR(darkslategrey,47,79,79); +COLOR(darkslategrey1,151,255,255); +COLOR(darkslategrey2,141,238,238); +COLOR(darkslategrey3,121,205,205); +COLOR(darkslategrey4,82,139,139); +COLOR(darkturquoise,0,206,209); +COLOR(darkviolet,148,0,211); +COLOR(deeppink,255,20,147); +COLOR(deeppink1,255,20,147); +COLOR(deeppink2,238,18,137); +COLOR(deeppink3,205,16,118); +COLOR(deeppink4,139,10,80); +COLOR(deepskyblue,0,191,255); +COLOR(deepskyblue1,0,191,255); +COLOR(deepskyblue2,0,178,238); +COLOR(deepskyblue3,0,154,205); +COLOR(deepskyblue4,0,104,139); +COLOR(dimgrey,105,105,105); +COLOR(dodgerblue,30,144,255); +COLOR(dodgerblue1,30,144,255); +COLOR(dodgerblue2,28,134,238); +COLOR(dodgerblue3,24,116,205); +COLOR(dodgerblue4,16,78,139); +COLOR(firebrick,178,34,34); +COLOR(firebrick1,255,48,48); COLOR(firebrick2,238,44,44); +COLOR(firebrick3,205,38,38); +COLOR(firebrick4,139,26,26); +COLOR(floralwhite,255,250,240); +COLOR(forestgreen,34,139,34); +COLOR(gainsboro,220,220,220); +COLOR(ghostwhite,248,248,255); +COLOR(gold,255,215,0); +COLOR(gold1,255,215,0); +COLOR(gold2,238,201,0); +COLOR(gold3,205,173,0); +COLOR(gold4,139,117,0); +COLOR(goldenrod,218,165,32); COLOR(goldenrod1,255,193,37); -COLOR(darkgoldenrod2,238,173,14); -COLOR(mediumpurple2,159,121,238); -COLOR(burlywood4,139,115,85); -COLOR(darkred,139,0,0); -COLOR(pink4,139,99,108); -COLOR(mediumslateblue,123,104,238); -COLOR(dodgerblue1,30,144,255); -COLOR(palegreen2,144,238,144); -COLOR(ivory,255,255,240); -COLOR(lightblue1,191,239,255); -COLOR(indianred3,205,85,85); -COLOR(cyan,0,255,255); -COLOR(purple3,125,38,205); -COLOR(cornflowerblue,100,149,237); -COLOR(palegoldenrod,238,232,170); -COLOR(darkturquoise,0,206,209); -COLOR(purple,160,32,240); -COLOR(tan3,205,133,63); -COLOR(lightyellow2,238,238,209); -COLOR(blue2,0,0,238); -COLOR(pink2,238,169,184); -COLOR(limegreen,50,205,50); -COLOR(azure2,224,238,238); -COLOR(navajowhite,255,222,173); -COLOR(aquamarine3,102,205,170); -COLOR(orange3,205,133,0); -COLOR(lightskyblue,135,206,250); -COLOR(darkorchid3,154,50,205); -COLOR(blue,0,0,255); -COLOR(khaki2,238,230,133); -COLOR(darkorange3,205,102,0); +COLOR(goldenrod2,238,180,34); +COLOR(goldenrod3,205,155,29); COLOR(goldenrod4,139,105,20); -COLOR(peachpuff1,255,218,185); -COLOR(blue4,0,0,139); -COLOR(skyblue4,74,112,139); -COLOR(firebrick3,205,38,38); -COLOR(antiquewhite2,238,223,204); -COLOR(darkorange1,255,127,0); -COLOR(orangered1,255,69,0); -COLOR(lightyellow4,139,139,122); -COLOR(wheat4,139,126,102); -COLOR(turquoise,64,224,208); -COLOR(tan4,139,90,43); -COLOR(tomato2,238,92,66); -COLOR(orchid3,205,105,201); +COLOR(green,0,255,0); +COLOR(green1,0,255,0); +COLOR(green2,0,238,0); +COLOR(green3,0,205,0); +COLOR(green4,0,139,0); +COLOR(greenyellow,173,255,47); +COLOR(grey,190,190,190); +COLOR(honeydew,240,255,240); +COLOR(honeydew1,240,255,240); +COLOR(honeydew2,224,238,224); +COLOR(honeydew3,193,205,193); +COLOR(honeydew4,131,139,131); +COLOR(hotpink,255,105,180); +COLOR(hotpink1,255,110,180); +COLOR(hotpink2,238,106,167); +COLOR(hotpink3,205,96,144); +COLOR(hotpink4,139,58,98); +COLOR(indianred,205,92,92); +COLOR(indianred1,255,106,106); +COLOR(indianred2,238,99,99); +COLOR(indianred3,205,85,85); +COLOR(indianred4,139,58,58); +COLOR(ivory,255,255,240); +COLOR(ivory1,255,255,240); +COLOR(ivory2,238,238,224); +COLOR(ivory3,205,205,193); +COLOR(ivory4,139,139,131); +COLOR(khaki,240,230,140); +COLOR(khaki1,255,246,143); +COLOR(khaki2,238,230,133); +COLOR(khaki3,205,198,115); +COLOR(khaki4,139,134,78); +COLOR(lavender,230,230,250); +COLOR(lavenderblush,255,240,245); +COLOR(lavenderblush1,255,240,245); +COLOR(lavenderblush2,238,224,229); +COLOR(lavenderblush3,205,193,197); +COLOR(lavenderblush4,139,131,134); COLOR(lawngreen,124,252,0); -COLOR(cornsilk2,238,232,205); -COLOR(aliceblue,240,248,255); -COLOR(darkkhaki,189,183,107); -COLOR(darkseagreen3,155,205,155); -COLOR(magenta3,205,0,205); -COLOR(dodgerblue4,16,78,139); -COLOR(chartreuse1,127,255,0); -COLOR(darkmagenta,139,0,139); +COLOR(lemonchiffon,255,250,205); +COLOR(lemonchiffon1,255,250,205); +COLOR(lemonchiffon2,238,233,191); +COLOR(lemonchiffon3,205,201,165); COLOR(lemonchiffon4,139,137,112); -COLOR(deeppink4,139,10,80); -COLOR(seagreen4,46,139,87); -COLOR(cornsilk1,255,248,220); -COLOR(deepskyblue3,0,154,205); -COLOR(coral4,139,62,47); -COLOR(sandybrown,244,164,96); -COLOR(maroon4,139,28,98); -COLOR(dodgerblue3,24,116,205); -COLOR(wheat1,255,231,186); -COLOR(brown4,139,35,35); +COLOR(lightblue,173,216,230); +COLOR(lightblue1,191,239,255); +COLOR(lightblue2,178,223,238); +COLOR(lightblue3,154,192,205); +COLOR(lightblue4,104,131,139); +COLOR(lightcoral,240,128,128); +COLOR(lightcyan,224,255,255); +COLOR(lightcyan1,224,255,255); +COLOR(lightcyan2,209,238,238); +COLOR(lightcyan3,180,205,205); +COLOR(lightcyan4,122,139,139); +COLOR(lightgoldenrod,238,221,130); +COLOR(lightgoldenrod1,255,236,139); +COLOR(lightgoldenrod2,238,220,130); +COLOR(lightgoldenrod3,205,190,112); +COLOR(lightgoldenrod4,139,129,76); +COLOR(lightgoldenrodyellow,250,250,210); +COLOR(lightgreen,144,238,144); +COLOR(lightgrey,211,211,211); +COLOR(lightpink,255,182,193); +COLOR(lightpink1,255,174,185); +COLOR(lightpink2,238,162,173); +COLOR(lightpink3,205,140,149); +COLOR(lightpink4,139,95,101); COLOR(lightsalmon,255,160,122); -COLOR(salmon4,139,76,57); -COLOR(saddlebrown,139,69,19); -COLOR(cadetblue3,122,197,205); -COLOR(chartreuse,127,255,0); -COLOR(maroon1,255,52,179); -COLOR(lemonchiffon,255,250,205); -COLOR(hotpink,255,105,180); -COLOR(red3,205,0,0); -COLOR(cyan1,0,255,255); -COLOR(olivedrab,107,142,35); -COLOR(steelblue,70,130,180); -COLOR(darkgoldenrod1,255,185,15); -COLOR(wheat2,238,216,174); -COLOR(thistle3,205,181,205); -COLOR(peachpuff3,205,175,149); -COLOR(navyblue,0,0,128); -COLOR(peachpuff2,238,203,173); -COLOR(snow1,255,250,250); +COLOR(lightsalmon1,255,160,122); +COLOR(lightsalmon2,238,149,114); +COLOR(lightsalmon3,205,129,98); +COLOR(lightsalmon4,139,87,66); +COLOR(lightseagreen,32,178,170); +COLOR(lightskyblue,135,206,250); +COLOR(lightskyblue1,176,226,255); +COLOR(lightskyblue2,164,211,238); +COLOR(lightskyblue3,141,182,205); COLOR(lightskyblue4,96,123,139); -COLOR(chartreuse2,118,238,0); COLOR(lightslateblue,132,112,255); -COLOR(palevioletred1,255,130,171); -COLOR(khaki3,205,198,115); -COLOR(bisque4,139,125,107); -COLOR(deeppink2,238,18,137); -COLOR(indianred4,139,58,58); -COLOR(bisque3,205,183,158); -COLOR(goldenrod,218,165,32); -COLOR(palevioletred2,238,121,159); -COLOR(red1,255,0,0); -COLOR(coral2,238,106,80); -COLOR(chartreuse3,102,205,0); -COLOR(deeppink1,255,20,147); -COLOR(lightgoldenrod2,238,220,130); +COLOR(lightslategrey,119,136,153); +COLOR(lightsteelblue,176,196,222); +COLOR(lightsteelblue1,202,225,255); +COLOR(lightsteelblue2,188,210,238); +COLOR(lightsteelblue3,162,181,205); +COLOR(lightsteelblue4,110,123,139); +COLOR(lightyellow,255,255,224); +COLOR(lightyellow1,255,255,224); +COLOR(lightyellow2,238,238,209); +COLOR(lightyellow3,205,205,180); +COLOR(lightyellow4,139,139,122); +COLOR(limegreen,50,205,50); +COLOR(linen,250,240,230); +COLOR(magenta,255,0,255); +COLOR(magenta1,255,0,255); +COLOR(magenta2,238,0,238); +COLOR(magenta3,205,0,205); +COLOR(magenta4,139,0,139); COLOR(maroon,176,48,96); -COLOR(darkblue,0,0,139); +COLOR(maroon1,255,52,179); +COLOR(maroon2,238,48,167); +COLOR(maroon3,205,41,144); +COLOR(maroon4,139,28,98); +COLOR(mediumaquamarine,102,205,170); +COLOR(mediumblue,0,0,205); +COLOR(mediumorchid,186,85,211); +COLOR(mediumorchid1,224,102,255); +COLOR(mediumorchid2,209,95,238); +COLOR(mediumorchid3,180,82,205); +COLOR(mediumorchid4,122,55,139); +COLOR(mediumpurple,147,112,219); COLOR(mediumpurple1,171,130,255); -COLOR(plum3,205,150,205); -COLOR(darkcyan,0,139,139); -COLOR(plum1,255,187,255); -COLOR(bisque2,238,213,183); -COLOR(darkslategrey3,121,205,205); -COLOR(darkseagreen,143,188,143); +COLOR(mediumpurple2,159,121,238); +COLOR(mediumpurple3,137,104,205); +COLOR(mediumpurple4,93,71,139); +COLOR(mediumseagreen,60,179,113); +COLOR(mediumslateblue,123,104,238); +COLOR(mediumspringgreen,0,250,154); +COLOR(mediumturquoise,72,209,204); +COLOR(mediumvioletred,199,21,133); +COLOR(midnightblue,25,25,112); +COLOR(mintcream,245,255,250); +COLOR(mistyrose,255,228,225); +COLOR(mistyrose1,255,228,225); +COLOR(mistyrose2,238,213,210); +COLOR(mistyrose3,205,183,181); +COLOR(mistyrose4,139,125,123); +COLOR(moccasin,255,228,181); +COLOR(navajowhite,255,222,173); +COLOR(navajowhite1,255,222,173); +COLOR(navajowhite2,238,207,161); +COLOR(navajowhite3,205,179,139); +COLOR(navajowhite4,139,121,94); +COLOR(navy,0,0,128); +COLOR(navyblue,0,0,128); +COLOR(oldlace,253,245,230); +COLOR(olivedrab,107,142,35); +COLOR(olivedrab1,192,255,62); +COLOR(olivedrab2,179,238,58); +COLOR(olivedrab3,154,205,50); +COLOR(olivedrab4,105,139,34); +COLOR(orange,255,165,0); +COLOR(orange1,255,165,0); +COLOR(orange2,238,154,0); +COLOR(orange3,205,133,0); +COLOR(orange4,139,90,0); +COLOR(orangered,255,69,0); +COLOR(orangered1,255,69,0); +COLOR(orangered2,238,64,0); COLOR(orangered3,205,55,0); -COLOR(chartreuse4,69,139,0); -COLOR(mediumaquamarine,102,205,170); -COLOR(darkorange4,139,69,0); -COLOR(magenta2,238,0,238); -COLOR(lightblue3,154,192,205); -COLOR(deeppink,255,20,147); -COLOR(honeydew4,131,139,131); -COLOR(hotpink4,139,58,98); -COLOR(slategrey4,108,123,139); -COLOR(tomato1,255,99,71); -COLOR(thistle2,238,210,238); -COLOR(turquoise2,0,229,238); +COLOR(orangered4,139,37,0); COLOR(orchid,218,112,214); -COLOR(hotpink3,205,96,144); -COLOR(mediumvioletred,199,21,133); -COLOR(green4,0,139,0); -COLOR(lightcyan4,122,139,139); -COLOR(palegreen4,84,139,84); -COLOR(dimgrey,105,105,105); -COLOR(salmon3,205,112,84); -COLOR(lightblue,173,216,230); -COLOR(bisque1,255,228,196); -COLOR(cadetblue1,152,245,255); -COLOR(mediumorchid1,224,102,255); -COLOR(darkseagreen2,180,238,180); -COLOR(springgreen1,0,255,127); -COLOR(lightsteelblue4,110,123,139); -COLOR(violetred,208,32,144); -COLOR(greenyellow,173,255,47); -COLOR(darkolivegreen1,202,255,112); +COLOR(orchid1,255,131,250); +COLOR(orchid2,238,122,233); +COLOR(orchid3,205,105,201); +COLOR(orchid4,139,71,137); +COLOR(palegoldenrod,238,232,170); +COLOR(palegreen,152,251,152); +COLOR(palegreen1,154,255,154); +COLOR(palegreen2,144,238,144); COLOR(palegreen3,124,205,124); -COLOR(purple4,85,26,139); -COLOR(slateblue2,122,103,238); -COLOR(lightseagreen,32,178,170); -COLOR(antiquewhite,250,235,215); -COLOR(lemonchiffon1,255,250,205); -COLOR(gold1,255,215,0); -COLOR(turquoise1,0,245,255); -COLOR(darkgoldenrod,184,134,11); -COLOR(seashell1,255,245,238); -COLOR(darkgreen,0,100,0); +COLOR(palegreen4,84,139,84); +COLOR(paleturquoise,175,238,238); +COLOR(paleturquoise1,187,255,255); +COLOR(paleturquoise2,174,238,238); +COLOR(paleturquoise3,150,205,205); +COLOR(paleturquoise4,102,139,139); +COLOR(palevioletred,219,112,147); +COLOR(palevioletred1,255,130,171); +COLOR(palevioletred2,238,121,159); +COLOR(palevioletred3,205,104,137); +COLOR(palevioletred4,139,71,93); COLOR(papayawhip,255,239,213); -COLOR(gainsboro,220,220,220); -COLOR(mediumorchid,186,85,211); -COLOR(lemonchiffon3,205,201,165); -COLOR(midnightblue,25,25,112); -COLOR(cadetblue,95,158,160); +COLOR(peachpuff,255,218,185); +COLOR(peachpuff1,255,218,185); +COLOR(peachpuff2,238,203,173); +COLOR(peachpuff3,205,175,149); +COLOR(peachpuff4,139,119,101); +COLOR(peru,205,133,63); +COLOR(pink,255,192,203); +COLOR(pink1,255,181,197); +COLOR(pink2,238,169,184); +COLOR(pink3,205,145,158); +COLOR(pink4,139,99,108); +COLOR(plum,221,160,221); +COLOR(plum1,255,187,255); +COLOR(plum2,238,174,238); +COLOR(plum3,205,150,205); +COLOR(plum4,139,102,139); +COLOR(powderblue,176,224,230); +COLOR(purple,160,32,240); +COLOR(purple1,155,48,255); +COLOR(purple2,145,44,238); +COLOR(purple3,125,38,205); +COLOR(purple4,85,26,139); +COLOR(red,255,0,0); +COLOR(red1,255,0,0); +COLOR(red2,238,0,0); +COLOR(red3,205,0,0); +COLOR(red4,139,0,0); +COLOR(rosybrown,188,143,143); +COLOR(rosybrown1,255,193,193); +COLOR(rosybrown2,238,180,180); +COLOR(rosybrown3,205,155,155); +COLOR(rosybrown4,139,105,105); +COLOR(royalblue,65,105,225); +COLOR(royalblue1,72,118,255); +COLOR(royalblue2,67,110,238); +COLOR(royalblue3,58,95,205); +COLOR(royalblue4,39,64,139); +COLOR(saddlebrown,139,69,19); +COLOR(salmon,250,128,114); +COLOR(salmon1,255,140,105); +COLOR(salmon2,238,130,98); +COLOR(salmon3,205,112,84); +COLOR(salmon4,139,76,57); +COLOR(sandybrown,244,164,96); +COLOR(seagreen,46,139,87); COLOR(seagreen1,84,255,159); -COLOR(pink3,205,145,158); -COLOR(palevioletred,219,112,147); +COLOR(seagreen2,78,238,148); +COLOR(seagreen3,67,205,128); +COLOR(seagreen4,46,139,87); +COLOR(seashell,255,245,238); +COLOR(seashell1,255,245,238); +COLOR(seashell2,238,229,222); +COLOR(seashell3,205,197,191); +COLOR(seashell4,139,134,130); +COLOR(sienna,160,82,45); +COLOR(sienna1,255,130,71); +COLOR(sienna2,238,121,66); +COLOR(sienna3,205,104,57); COLOR(sienna4,139,71,38); -COLOR(mediumorchid2,209,95,238); -COLOR(chocolate2,238,118,33); COLOR(skyblue,135,206,235); -COLOR(magenta1,255,0,255); -COLOR(ivory1,255,255,240); -COLOR(olivedrab1,192,255,62); -COLOR(burlywood3,205,170,125); -COLOR(slategrey,112,128,144); -COLOR(wheat3,205,186,150); -COLOR(paleturquoise4,102,139,139); -COLOR(blanchedalmond,255,235,205); -COLOR(orchid1,255,131,250); -COLOR(seashell2,238,229,222); -COLOR(magenta4,139,0,139); -COLOR(green2,0,238,0); -COLOR(indianred2,238,99,99); -COLOR(lightpink,255,182,193); -COLOR(brown3,205,51,51); -COLOR(beige,245,245,220); +COLOR(skyblue1,135,206,255); +COLOR(skyblue2,126,192,238); COLOR(skyblue3,108,166,205); -COLOR(floralwhite,255,250,240); -COLOR(mediumorchid3,180,82,205); -COLOR(burlywood2,238,197,145); -COLOR(sienna2,238,121,66); +COLOR(skyblue4,74,112,139); +COLOR(slateblue,106,90,205); +COLOR(slateblue1,131,111,255); +COLOR(slateblue2,122,103,238); +COLOR(slateblue3,105,89,205); +COLOR(slateblue4,71,60,139); +COLOR(slategrey,112,128,144); +COLOR(slategrey1,198,226,255); +COLOR(slategrey2,185,211,238); +COLOR(slategrey3,159,182,205); +COLOR(slategrey4,108,123,139); COLOR(snow,255,250,250); -COLOR(seagreen,46,139,87); -COLOR(lightsteelblue3,162,181,205); -COLOR(mediumblue,0,0,205); -COLOR(olivedrab3,154,205,50); -COLOR(ivory3,205,205,193); -COLOR(peachpuff4,139,119,101); -COLOR(goldenrod2,238,180,34); -COLOR(lavenderblush1,255,240,245); -COLOR(darkgoldenrod3,205,149,12); +COLOR(snow1,255,250,250); +COLOR(snow2,238,233,233); +COLOR(snow3,205,201,201); +COLOR(snow4,139,137,137); +COLOR(springgreen,0,255,127); +COLOR(springgreen1,0,255,127); +COLOR(springgreen2,0,238,118); +COLOR(springgreen3,0,205,102); +COLOR(springgreen4,0,139,69); +COLOR(steelblue,70,130,180); COLOR(steelblue1,99,184,255); -COLOR(seashell,255,245,238); -COLOR(lightsalmon3,205,129,98); -COLOR(peachpuff,255,218,185); -COLOR(red,255,0,0); -COLOR(mintcream,245,255,250); -COLOR(orchid2,238,122,233); -COLOR(darkolivegreen3,162,205,90); -COLOR(lightcyan3,180,205,205); +COLOR(steelblue2,92,172,238); +COLOR(steelblue3,79,148,205); COLOR(steelblue4,54,100,139); -COLOR(darkolivegreen4,110,139,61); -COLOR(lavenderblush2,238,224,229); -COLOR(palevioletred4,139,71,93); -COLOR(green1,0,255,0); -COLOR(violetred3,205,50,120); -COLOR(green,0,255,0); -COLOR(paleturquoise2,174,238,238); -COLOR(indianred,205,92,92); -COLOR(lightgoldenrod,238,221,130); -COLOR(royalblue,65,105,225); -COLOR(lightblue4,104,131,139); -COLOR(lightgoldenrod3,205,190,112); -COLOR(orange,255,165,0); +COLOR(tan,210,180,140); +COLOR(tan1,255,165,79); COLOR(tan2,238,154,73); -COLOR(palegreen1,154,255,154); -COLOR(tomato,255,99,71); -COLOR(darkolivegreen2,188,238,104); -COLOR(aquamarine1,127,255,212); -COLOR(lightyellow3,205,205,180); -COLOR(yellow3,205,205,0); -COLOR(lightsteelblue1,202,225,255); -COLOR(slategrey1,198,226,255); -COLOR(rosybrown2,238,180,180); -COLOR(navajowhite3,205,179,139); -COLOR(lightgrey,211,211,211); -COLOR(chocolate,210,105,30); -COLOR(royalblue3,58,95,205); +COLOR(tan3,205,133,63); +COLOR(tan4,139,90,43); +COLOR(thistle,216,191,216); +COLOR(thistle1,255,225,255); +COLOR(thistle2,238,210,238); +COLOR(thistle3,205,181,205); COLOR(thistle4,139,123,139); -COLOR(linen,250,240,230); -COLOR(brown,165,42,42); -COLOR(mediumpurple4,93,71,139); -COLOR(mediumorchid4,122,55,139); -COLOR(salmon1,255,140,105); -COLOR(steelblue2,92,172,238); -COLOR(seashell4,139,134,130); -COLOR(aquamarine,127,255,212); -COLOR(wheat,245,222,179); -COLOR(burlywood1,255,211,155); -COLOR(green3,0,205,0); -COLOR(orangered4,139,37,0); -COLOR(darkorchid1,191,62,255); -COLOR(mistyrose2,238,213,210); -COLOR(darkseagreen1,193,255,193); -COLOR(lightskyblue2,164,211,238); -COLOR(slateblue4,71,60,139); -COLOR(cyan2,0,238,238); -COLOR(springgreen3,0,205,102); -COLOR(deepskyblue2,0,178,238); -COLOR(chocolate4,139,69,19); -COLOR(cornsilk3,205,200,177); -COLOR(yellow2,238,238,0); +COLOR(tomato,255,99,71); +COLOR(tomato1,255,99,71); +COLOR(tomato2,238,92,66); +COLOR(tomato3,205,79,57); COLOR(tomato4,139,54,38); -COLOR(skyblue1,135,206,255); -COLOR(lightslategrey,119,136,153); -COLOR(mediumturquoise,72,209,204); -COLOR(pink1,255,181,197); -COLOR(moccasin,255,228,181); -COLOR(olivedrab4,105,139,34); -COLOR(darkslategrey2,141,238,238); -COLOR(brown1,255,64,64); -COLOR(coral3,205,91,69); -COLOR(cornsilk,255,248,220); +COLOR(turquoise,64,224,208); +COLOR(turquoise1,0,245,255); +COLOR(turquoise2,0,229,238); +COLOR(turquoise3,0,197,205); +COLOR(turquoise4,0,134,139); +COLOR(violet,238,130,238); +COLOR(violetred,208,32,144); +COLOR(violetred1,255,62,150); COLOR(violetred2,238,58,140); -COLOR(paleturquoise,175,238,238); -COLOR(red2,238,0,0); -COLOR(orange1,255,165,0); +COLOR(violetred3,205,50,120); COLOR(violetred4,139,34,82); -COLOR(black,0,0,0); -COLOR(powderblue,176,224,230); -COLOR(darkorchid2,178,58,238); -COLOR(blueviolet,138,43,226); -COLOR(slateblue1,131,111,255); -COLOR(navy,0,0,128); +COLOR(wheat,245,222,179); +COLOR(wheat1,255,231,186); +COLOR(wheat2,238,216,174); +COLOR(wheat3,205,186,150); +COLOR(wheat4,139,126,102); +COLOR(white,255,255,255); COLOR(whitesmoke,245,245,245); -COLOR(lightcyan,224,255,255); -COLOR(darkorange2,238,118,0); +COLOR(yellow,255,255,0); +COLOR(yellow1,255,255,0); +COLOR(yellow2,238,238,0); +COLOR(yellow3,205,205,0); COLOR(yellow4,139,139,0); -COLOR(navajowhite2,238,207,161); -COLOR(plum2,238,174,238); -COLOR(tan,210,180,140); -COLOR(gold3,205,173,0); -COLOR(goldenrod3,205,155,29); -COLOR(turquoise4,0,134,139); -COLOR(snow2,238,233,233); -COLOR(slategrey3,159,182,205); -COLOR(lightgreen,144,238,144); -COLOR(paleturquoise3,150,205,205); -COLOR(lightsalmon2,238,149,114); -COLOR(deepskyblue4,0,104,139); -COLOR(tan1,255,165,79); -COLOR(turquoise3,0,197,205); -COLOR(mediumpurple3,137,104,205); -COLOR(khaki,240,230,140); -COLOR(lavenderblush3,205,193,197); -COLOR(springgreen,0,255,127); -COLOR(white,255,255,255); -COLOR(mistyrose3,205,183,181); -COLOR(mistyrose,255,228,225); -COLOR(lightcyan2,209,238,238); -COLOR(firebrick1,255,48,48); -COLOR(seashell3,205,197,191); -COLOR(violet,238,130,238); -COLOR(azure,240,255,255); -COLOR(mediumseagreen,60,179,113); -COLOR(mistyrose1,255,228,225); -COLOR(lightskyblue1,176,226,255); -COLOR(springgreen4,0,139,69); -COLOR(lightskyblue3,141,182,205); -COLOR(navajowhite4,139,121,94); -COLOR(orangered,255,69,0); -COLOR(slateblue,106,90,205); -COLOR(ivory4,139,139,131); -COLOR(antiquewhite3,205,192,176); -COLOR(magenta,255,0,255); -COLOR(orangered2,238,64,0); -COLOR(seagreen3,67,205,128); -COLOR(lightgoldenrod4,139,129,76); +COLOR(yellowgreen,154,205,50); + + +#ifdef ROXEN +mapping (string:string) html_32_colors = +([ + "black":"#000000", "green":"#008000", "silver":"#C0C0C0", "lime":"#00FF00", + "gray":"#808080", "olive":"#808000", "white":"#FFFFFF","yellow":"#FFFF00", + "maroon":"#800000", "navy":"#000080", "red":"#FF0000", "blue":"#0000FF", + "purple":"#800080", "teal":"#008080", "fuchsia":"#FF00FF", "aqua":"#00FFFF", +]); +#endif + + +#define MAX(X,Y) ((X)>(Y)?(X):(Y)) +#define MIN(X,Y) ((X)<(Y)?(X):(Y)) +#define MAX3(X,Y,Z) MAX(MAX(X,Y),Z) + +array rgb_to_hsv(array|int ri, int|void gi, int|void bi) +{ + float max, min; + float r,g,b, delta; + float h, s, v; + + if(arrayp(ri)) return rgb_to_hsv(@ri); + r = (float)ri/255.0; g = (float)gi/255.0; b = (float)bi/255.0; + max = MAX3(r,g,b); + min = -(MAX3(-r,-g,-b)); + + v = max; + + if(max != 0.0) + s = (max - min)/max; + else + return ({ -10, 0, (int)(v*255) }); + + delta = max-min; + + if(r==max) h = (g-b)/delta; + else if(g==max) h = 2+(b-r)/delta; + else if(b==max) h = 4+(r-g)/delta; + h *= 60; // now in degrees. + if(h<0) h+=360; + return ({ (int)((h/360.0)*255), (int)(s*255), (int)(v*255) }); +} + +array hsv_to_rgb(array|int hv, int|void sv, int|void vv) +{ + if(arrayp(hv)) return hsv_to_rgb(@hv); + + float h,sat,v; + float r,g,b; + h = (hv/255.0)*(360.0/60.0); + sat = sv/255.0; + v = vv/255.0; + + if(sat==0.0) + { + r = g = b = v; + } else { +#define i floor(h) +#define f (h-i) +#define p (v * (1 - sat)) +#define q (v * (1 - (sat * f))) +#define t (v * (1 - (sat * (1 -f)))) + switch((int)i) + { + case 6: // 360 degrees. Same as 0.. + case 0: r = v; g = t; b = p; break; + case 1: r = q; g = v; b = p; break; + case 2: r = p; g = v; b = t; break; + case 3: r = p; g = q; b = v; break; + case 4: r = t; g = p; b = v; break; + case 5: r = v; g = p; b = q; break; + } + } +#undef i +#undef f +#undef p +#undef q +#undef t +#define FOO(X) ((int)((X)<0.0?0:(X)>1.0?255:(int)((X)*255.0))) + return ({FOO(r), FOO(g), FOO(b) }); +} + +array(int) parse_color(string from) +{ + int c; + if(!from || !strlen(from)) return ({ 0,0,0 }); // Odd color... + + from = lower_case(from-" "); +#ifdef ROXEN + if(html_32_colors[from]) from = html_32_colors[from]; + else +#endif + if(arrayp(this_object()[from])) return this_object()[from]; + + // Is it #rrggbb? + if(from[0]=='#') + { + c = (int)("0x"+from[1..]); + if(strlen(from)>6) + return ({ c>>16, (c>>8)&255, c&255 }); + return ({ (c>>8)<<4, ((c>>4)&15)<<4, (c&15)<<4 }); + } else if(from[0]=='@') { + // Nope. What about @h,s,v? (h=degrees, 0 to 359, s and v = percent) + float h, s, v; + float r, g, b; + sscanf(from[1..], "%d,%d,%d", h, s, v); + h = (h/360.0) * 2*3.1415; s=(s/100.0); v=(v/100.0); + r=v+s*cos(h); + g=v+s*cos(h+(3.1415*2.0/3.0)); + b=v+s*cos(h+(3.1415*4.0/3.0)); +#define FOO(X) ((int)((X)<0.0?0:(X)>1.0?255:(int)((X)*255.0))) + return ({FOO(r), FOO(g), FOO(b) }); + } else if(from[0]=='%') { + // Nope. What about %c,m,t,k? (percent) + int c,m,y,k; + sscanf(from[1..], "%d,%d,%d,%d", c, m, y, k); + int r=100, b=100, g=100; + r-=c+k; g-=m+k; b-=y+k; + if(r<0) r=0; + if(g<0) g=0; + if(b<0) b=0; + return ({ (int)(r*2.55), (int)(g*2.55), (int)(b*2.55) }); + } + + // No luck. It might be a color on the form rrggbb (that is, no leading '#') + if(c=(int)("0x"+from)) + { + if(strlen(from)>5) + return ({ c>>16, (c>>8)&255, c&255 }); + return ({ (c>>8)<<4, ((c>>4)&15)<<4, (c&15)<<4 }); + } + + from = replace(from-" ", "gray", "grey"); + + // Perhaps it is a greyscale? (gray00 to gray99) + if(sscanf(from, "grey%d", c)) + return ({ (c*255)/100, (c*255)/100, (c*255)/100, }); + + if(sscanf(from, "light%s", from)) + { + array c = rgb_to_hsv(parse_color(from)); + c[2] = -MAX(-(c[2]+50), -255); + if(c[2]==255) c[1]=MAX(c[1]-20,0); + return hsv_to_rgb(c); + } + + if(sscanf(from, "dark%s", from)) + { + array c = rgb_to_hsv(parse_color(from)); + c[2] = MAX(c[2]-50, 0); + if(c[2]==0) c[1]=MIN(c[1]+20,255); + return hsv_to_rgb(c); + } + + if(sscanf(from, "neon%s", from)) + { + array c = rgb_to_hsv(parse_color(from)); + c[1] = 255; c[2] = 255; + return hsv_to_rgb(c); + } + + // Lets call it black and be happy..... :-) + return ({ 0,0,0 }); +} + +// Mostly used for debug. Not really all that perfect.. +string color_name(array (int) from) +{ + if(!arrayp(from) || sizeof(from)!=3) return "-"; + foreach(values(this_object()), mixed c) + if(equal(c,from)) + return search(mkmapping(indices(this_object()),values(this_object())),c); + if(equal(parse_color("grey"+(((int)from[0]*100)/255)),from)) + return "grey"+(((int)from[0]*100)/255); + return sprintf("#%02x%02x%02x", @from); +}