pro col_define,ct,ncols,nowindow=nowindow,die=die,help=help, $ reload=reload,verbose=verbose ;; this routine defines a system variable !col to let us use colors ;; in IDL in a way that is independent of the depth of graphics ;; device. ;; ;; We take the names from rgb.txt and define elements like ;; !col.antiquewhite that can be used to get something exactly ;; correct for truecolor devices and something approximately ;; correct for 8 bit displays. ;; ;; There is also an array !col.ct that lets us emulate the idl color ;; tables on truecolor and doesn't get in the way on 8 bit displays. if keyword_set(help) then begin print,' usage: col_define[,colortable[,ncols][,/reload]][,/verbose]' print,' Always defines a variable !col if it is undefined.' print,' If called with colortable, then that color table is loaded and' print,' values of !col are modified to match the new colortable. If' print,' this variable is omitted, the existing colortable is used. If' print,' ncols is defined and the display is 24 bits, then !col.ct' print,' mimics a colortable of (ncols < 256) elements (for 16 bit ' print,' graphics it is ncols <64). The verbose switch causes possibly' print,' useful messages to be printed' return endif ;; This is all much harder than it needs to be because IDL makes ;; runtime definitions of structures a real pain. ;; if we have not yet made a connection to the X server then this ;; won't work, because !d.n_colors will be 256. Make default to ;; make a connection. ;; Another way to do this would be to query the X display directly ;; by spawning xdpyinfo and looking at the output. if not keyword_set(nowindow) and (!d.name eq 'X') then begin ;; I think we use the least amount of resources (especially over a ;; slow connection) if we force an X connection by making the ;; smallest possible pixmap window,/free,/pixmap,xsize=1,ysize=1 wdelete,!d.window endif if !d.name eq "X" then begin device,get_visual_name=visual_name truecolor = (visual_name eq "TrueColor") ;;pseudocolor = (visual_name eq "PseudoColor") ;; we do not use this if visual_name eq "DirectColor" then begin print,"col_define cannot handle DirectColor display. Blame IDL." return endif endif else begin truecolor = 0B ;; pseudocolor = 1B ;; see above endelse ;; set default values for ncols and ct if n_elements(ncols) eq 0 then ncols = 256 ncols = !d.table_size < ncols if n_elements(ct) eq 0 then ct = -1 ;; Does !col already exist? We can call this routine to change the ;; color table but we can't redefine !col from scratch. ;; if you change this definition the REST OF THIS ROUTINE WILL BREAK! defsysv,'!col',exists=col_exists if (not col_exists) then begin ;; !col needs to be defined if keyword_set(verbose) then print,'defining system variable !col' ;; this is generated by ;; gawk '{if (NF==4) print " "$4": 0L, "$4"_rgb: ["$1"B,"$2"B,"$3"B], $"}' /usr/X11R6/lib/X11/rgb.txt > rgb.idl ;; The contents of rgb.txt may be copyrighted by the Open Group. ;; See notice at the end of this file. defsysv,'!col',{ ct: lonarr(256), loaded_ct: ct, ncols: ncols, $ gdevice: !d.name, $ snow: 0L, snow_rgb: [255B,250B,250B], $ GhostWhite: 0L, GhostWhite_rgb: [248B,248B,255B], $ WhiteSmoke: 0L, WhiteSmoke_rgb: [245B,245B,245B], $ gainsboro: 0L, gainsboro_rgb: [220B,220B,220B], $ FloralWhite: 0L, FloralWhite_rgb: [255B,250B,240B], $ OldLace: 0L, OldLace_rgb: [253B,245B,230B], $ linen: 0L, linen_rgb: [250B,240B,230B], $ AntiqueWhite: 0L, AntiqueWhite_rgb: [250B,235B,215B], $ PapayaWhip: 0L, PapayaWhip_rgb: [255B,239B,213B], $ BlanchedAlmond: 0L, BlanchedAlmond_rgb: [255B,235B,205B], $ bisque: 0L, bisque_rgb: [255B,228B,196B], $ PeachPuff: 0L, PeachPuff_rgb: [255B,218B,185B], $ NavajoWhite: 0L, NavajoWhite_rgb: [255B,222B,173B], $ moccasin: 0L, moccasin_rgb: [255B,228B,181B], $ cornsilk: 0L, cornsilk_rgb: [255B,248B,220B], $ ivory: 0L, ivory_rgb: [255B,255B,240B], $ LemonChiffon: 0L, LemonChiffon_rgb: [255B,250B,205B], $ seashell: 0L, seashell_rgb: [255B,245B,238B], $ honeydew: 0L, honeydew_rgb: [240B,255B,240B], $ MintCream: 0L, MintCream_rgb: [245B,255B,250B], $ azure: 0L, azure_rgb: [240B,255B,255B], $ AliceBlue: 0L, AliceBlue_rgb: [240B,248B,255B], $ lavender: 0L, lavender_rgb: [230B,230B,250B], $ LavenderBlush: 0L, LavenderBlush_rgb: [255B,240B,245B], $ MistyRose: 0L, MistyRose_rgb: [255B,228B,225B], $ white: 0L, white_rgb: [255B,255B,255B], $ black: 0L, black_rgb: [0B,0B,0B], $ DarkSlateGray: 0L, DarkSlateGray_rgb: [47B,79B,79B], $ DarkSlateGrey: 0L, DarkSlateGrey_rgb: [47B,79B,79B], $ DimGray: 0L, DimGray_rgb: [105B,105B,105B], $ DimGrey: 0L, DimGrey_rgb: [105B,105B,105B], $ SlateGray: 0L, SlateGray_rgb: [112B,128B,144B], $ SlateGrey: 0L, SlateGrey_rgb: [112B,128B,144B], $ LightSlateGray: 0L, LightSlateGray_rgb: [119B,136B,153B], $ LightSlateGrey: 0L, LightSlateGrey_rgb: [119B,136B,153B], $ gray: 0L, gray_rgb: [190B,190B,190B], $ grey: 0L, grey_rgb: [190B,190B,190B], $ LightGrey: 0L, LightGrey_rgb: [211B,211B,211B], $ LightGray: 0L, LightGray_rgb: [211B,211B,211B], $ MidnightBlue: 0L, MidnightBlue_rgb: [25B,25B,112B], $ navy: 0L, navy_rgb: [0B,0B,128B], $ NavyBlue: 0L, NavyBlue_rgb: [0B,0B,128B], $ CornflowerBlue: 0L, CornflowerBlue_rgb: [100B,149B,237B], $ DarkSlateBlue: 0L, DarkSlateBlue_rgb: [72B,61B,139B], $ SlateBlue: 0L, SlateBlue_rgb: [106B,90B,205B], $ MediumSlateBlue: 0L, MediumSlateBlue_rgb: [123B,104B,238B], $ LightSlateBlue: 0L, LightSlateBlue_rgb: [132B,112B,255B], $ MediumBlue: 0L, MediumBlue_rgb: [0B,0B,205B], $ RoyalBlue: 0L, RoyalBlue_rgb: [65B,105B,225B], $ blue: 0L, blue_rgb: [0B,0B,255B], $ DodgerBlue: 0L, DodgerBlue_rgb: [30B,144B,255B], $ DeepSkyBlue: 0L, DeepSkyBlue_rgb: [0B,191B,255B], $ SkyBlue: 0L, SkyBlue_rgb: [135B,206B,235B], $ LightSkyBlue: 0L, LightSkyBlue_rgb: [135B,206B,250B], $ SteelBlue: 0L, SteelBlue_rgb: [70B,130B,180B], $ LightSteelBlue: 0L, LightSteelBlue_rgb: [176B,196B,222B], $ LightBlue: 0L, LightBlue_rgb: [173B,216B,230B], $ PowderBlue: 0L, PowderBlue_rgb: [176B,224B,230B], $ PaleTurquoise: 0L, PaleTurquoise_rgb: [175B,238B,238B], $ DarkTurquoise: 0L, DarkTurquoise_rgb: [0B,206B,209B], $ MediumTurquoise: 0L, MediumTurquoise_rgb: [72B,209B,204B], $ turquoise: 0L, turquoise_rgb: [64B,224B,208B], $ cyan: 0L, cyan_rgb: [0B,255B,255B], $ LightCyan: 0L, LightCyan_rgb: [224B,255B,255B], $ CadetBlue: 0L, CadetBlue_rgb: [95B,158B,160B], $ MediumAquamarine: 0L, MediumAquamarine_rgb: [102B,205B,170B], $ aquamarine: 0L, aquamarine_rgb: [127B,255B,212B], $ DarkGreen: 0L, DarkGreen_rgb: [0B,100B,0B], $ DarkOliveGreen: 0L, DarkOliveGreen_rgb: [85B,107B,47B], $ DarkSeaGreen: 0L, DarkSeaGreen_rgb: [143B,188B,143B], $ SeaGreen: 0L, SeaGreen_rgb: [46B,139B,87B], $ MediumSeaGreen: 0L, MediumSeaGreen_rgb: [60B,179B,113B], $ LightSeaGreen: 0L, LightSeaGreen_rgb: [32B,178B,170B], $ PaleGreen: 0L, PaleGreen_rgb: [152B,251B,152B], $ SpringGreen: 0L, SpringGreen_rgb: [0B,255B,127B], $ LawnGreen: 0L, LawnGreen_rgb: [124B,252B,0B], $ green: 0L, green_rgb: [0B,255B,0B], $ chartreuse: 0L, chartreuse_rgb: [127B,255B,0B], $ MediumSpringGreen: 0L, MediumSpringGreen_rgb: [0B,250B,154B], $ GreenYellow: 0L, GreenYellow_rgb: [173B,255B,47B], $ LimeGreen: 0L, LimeGreen_rgb: [50B,205B,50B], $ YellowGreen: 0L, YellowGreen_rgb: [154B,205B,50B], $ ForestGreen: 0L, ForestGreen_rgb: [34B,139B,34B], $ OliveDrab: 0L, OliveDrab_rgb: [107B,142B,35B], $ DarkKhaki: 0L, DarkKhaki_rgb: [189B,183B,107B], $ khaki: 0L, khaki_rgb: [240B,230B,140B], $ PaleGoldenrod: 0L, PaleGoldenrod_rgb: [238B,232B,170B], $ LightGoldenrodYellow: 0L, LightGoldenrodYellow_rgb: [250B,250B,210B], $ LightYellow: 0L, LightYellow_rgb: [255B,255B,224B], $ yellow: 0L, yellow_rgb: [255B,255B,0B], $ gold: 0L, gold_rgb: [255B,215B,0B], $ LightGoldenrod: 0L, LightGoldenrod_rgb: [238B,221B,130B], $ goldenrod: 0L, goldenrod_rgb: [218B,165B,32B], $ DarkGoldenrod: 0L, DarkGoldenrod_rgb: [184B,134B,11B], $ RosyBrown: 0L, RosyBrown_rgb: [188B,143B,143B], $ IndianRed: 0L, IndianRed_rgb: [205B,92B,92B], $ SaddleBrown: 0L, SaddleBrown_rgb: [139B,69B,19B], $ sienna: 0L, sienna_rgb: [160B,82B,45B], $ peru: 0L, peru_rgb: [205B,133B,63B], $ burlywood: 0L, burlywood_rgb: [222B,184B,135B], $ beige: 0L, beige_rgb: [245B,245B,220B], $ wheat: 0L, wheat_rgb: [245B,222B,179B], $ SandyBrown: 0L, SandyBrown_rgb: [244B,164B,96B], $ tan: 0L, tan_rgb: [210B,180B,140B], $ chocolate: 0L, chocolate_rgb: [210B,105B,30B], $ firebrick: 0L, firebrick_rgb: [178B,34B,34B], $ brown: 0L, brown_rgb: [165B,42B,42B], $ DarkSalmon: 0L, DarkSalmon_rgb: [233B,150B,122B], $ salmon: 0L, salmon_rgb: [250B,128B,114B], $ LightSalmon: 0L, LightSalmon_rgb: [255B,160B,122B], $ orange: 0L, orange_rgb: [255B,165B,0B], $ DarkOrange: 0L, DarkOrange_rgb: [255B,140B,0B], $ coral: 0L, coral_rgb: [255B,127B,80B], $ LightCoral: 0L, LightCoral_rgb: [240B,128B,128B], $ tomato: 0L, tomato_rgb: [255B,99B,71B], $ OrangeRed: 0L, OrangeRed_rgb: [255B,69B,0B], $ red: 0L, red_rgb: [255B,0B,0B], $ HotPink: 0L, HotPink_rgb: [255B,105B,180B], $ DeepPink: 0L, DeepPink_rgb: [255B,20B,147B], $ pink: 0L, pink_rgb: [255B,192B,203B], $ LightPink: 0L, LightPink_rgb: [255B,182B,193B], $ PaleVioletRed: 0L, PaleVioletRed_rgb: [219B,112B,147B], $ maroon: 0L, maroon_rgb: [176B,48B,96B], $ MediumVioletRed: 0L, MediumVioletRed_rgb: [199B,21B,133B], $ VioletRed: 0L, VioletRed_rgb: [208B,32B,144B], $ magenta: 0L, magenta_rgb: [255B,0B,255B], $ violet: 0L, violet_rgb: [238B,130B,238B], $ plum: 0L, plum_rgb: [221B,160B,221B], $ orchid: 0L, orchid_rgb: [218B,112B,214B], $ MediumOrchid: 0L, MediumOrchid_rgb: [186B,85B,211B], $ DarkOrchid: 0L, DarkOrchid_rgb: [153B,50B,204B], $ DarkViolet: 0L, DarkViolet_rgb: [148B,0B,211B], $ BlueViolet: 0L, BlueViolet_rgb: [138B,43B,226B], $ purple: 0L, purple_rgb: [160B,32B,240B], $ MediumPurple: 0L, MediumPurple_rgb: [147B,112B,219B], $ thistle: 0L, thistle_rgb: [216B,191B,216B], $ snow1: 0L, snow1_rgb: [255B,250B,250B], $ snow2: 0L, snow2_rgb: [238B,233B,233B], $ snow3: 0L, snow3_rgb: [205B,201B,201B], $ snow4: 0L, snow4_rgb: [139B,137B,137B], $ seashell1: 0L, seashell1_rgb: [255B,245B,238B], $ seashell2: 0L, seashell2_rgb: [238B,229B,222B], $ seashell3: 0L, seashell3_rgb: [205B,197B,191B], $ seashell4: 0L, seashell4_rgb: [139B,134B,130B], $ AntiqueWhite1: 0L, AntiqueWhite1_rgb: [255B,239B,219B], $ AntiqueWhite2: 0L, AntiqueWhite2_rgb: [238B,223B,204B], $ AntiqueWhite3: 0L, AntiqueWhite3_rgb: [205B,192B,176B], $ AntiqueWhite4: 0L, AntiqueWhite4_rgb: [139B,131B,120B], $ bisque1: 0L, bisque1_rgb: [255B,228B,196B], $ bisque2: 0L, bisque2_rgb: [238B,213B,183B], $ bisque3: 0L, bisque3_rgb: [205B,183B,158B], $ bisque4: 0L, bisque4_rgb: [139B,125B,107B], $ PeachPuff1: 0L, PeachPuff1_rgb: [255B,218B,185B], $ PeachPuff2: 0L, PeachPuff2_rgb: [238B,203B,173B], $ PeachPuff3: 0L, PeachPuff3_rgb: [205B,175B,149B], $ PeachPuff4: 0L, PeachPuff4_rgb: [139B,119B,101B], $ NavajoWhite1: 0L, NavajoWhite1_rgb: [255B,222B,173B], $ NavajoWhite2: 0L, NavajoWhite2_rgb: [238B,207B,161B], $ NavajoWhite3: 0L, NavajoWhite3_rgb: [205B,179B,139B], $ NavajoWhite4: 0L, NavajoWhite4_rgb: [139B,121B,94B], $ LemonChiffon1: 0L, LemonChiffon1_rgb: [255B,250B,205B], $ LemonChiffon2: 0L, LemonChiffon2_rgb: [238B,233B,191B], $ LemonChiffon3: 0L, LemonChiffon3_rgb: [205B,201B,165B], $ LemonChiffon4: 0L, LemonChiffon4_rgb: [139B,137B,112B], $ cornsilk1: 0L, cornsilk1_rgb: [255B,248B,220B], $ cornsilk2: 0L, cornsilk2_rgb: [238B,232B,205B], $ cornsilk3: 0L, cornsilk3_rgb: [205B,200B,177B], $ cornsilk4: 0L, cornsilk4_rgb: [139B,136B,120B], $ ivory1: 0L, ivory1_rgb: [255B,255B,240B], $ ivory2: 0L, ivory2_rgb: [238B,238B,224B], $ ivory3: 0L, ivory3_rgb: [205B,205B,193B], $ ivory4: 0L, ivory4_rgb: [139B,139B,131B], $ honeydew1: 0L, honeydew1_rgb: [240B,255B,240B], $ honeydew2: 0L, honeydew2_rgb: [224B,238B,224B], $ honeydew3: 0L, honeydew3_rgb: [193B,205B,193B], $ honeydew4: 0L, honeydew4_rgb: [131B,139B,131B], $ LavenderBlush1: 0L, LavenderBlush1_rgb: [255B,240B,245B], $ LavenderBlush2: 0L, LavenderBlush2_rgb: [238B,224B,229B], $ LavenderBlush3: 0L, LavenderBlush3_rgb: [205B,193B,197B], $ LavenderBlush4: 0L, LavenderBlush4_rgb: [139B,131B,134B], $ MistyRose1: 0L, MistyRose1_rgb: [255B,228B,225B], $ MistyRose2: 0L, MistyRose2_rgb: [238B,213B,210B], $ MistyRose3: 0L, MistyRose3_rgb: [205B,183B,181B], $ MistyRose4: 0L, MistyRose4_rgb: [139B,125B,123B], $ azure1: 0L, azure1_rgb: [240B,255B,255B], $ azure2: 0L, azure2_rgb: [224B,238B,238B], $ azure3: 0L, azure3_rgb: [193B,205B,205B], $ azure4: 0L, azure4_rgb: [131B,139B,139B], $ SlateBlue1: 0L, SlateBlue1_rgb: [131B,111B,255B], $ SlateBlue2: 0L, SlateBlue2_rgb: [122B,103B,238B], $ SlateBlue3: 0L, SlateBlue3_rgb: [105B,89B,205B], $ SlateBlue4: 0L, SlateBlue4_rgb: [71B,60B,139B], $ RoyalBlue1: 0L, RoyalBlue1_rgb: [72B,118B,255B], $ RoyalBlue2: 0L, RoyalBlue2_rgb: [67B,110B,238B], $ RoyalBlue3: 0L, RoyalBlue3_rgb: [58B,95B,205B], $ RoyalBlue4: 0L, RoyalBlue4_rgb: [39B,64B,139B], $ blue1: 0L, blue1_rgb: [0B,0B,255B], $ blue2: 0L, blue2_rgb: [0B,0B,238B], $ blue3: 0L, blue3_rgb: [0B,0B,205B], $ blue4: 0L, blue4_rgb: [0B,0B,139B], $ DodgerBlue1: 0L, DodgerBlue1_rgb: [30B,144B,255B], $ DodgerBlue2: 0L, DodgerBlue2_rgb: [28B,134B,238B], $ DodgerBlue3: 0L, DodgerBlue3_rgb: [24B,116B,205B], $ DodgerBlue4: 0L, DodgerBlue4_rgb: [16B,78B,139B], $ SteelBlue1: 0L, SteelBlue1_rgb: [99B,184B,255B], $ SteelBlue2: 0L, SteelBlue2_rgb: [92B,172B,238B], $ SteelBlue3: 0L, SteelBlue3_rgb: [79B,148B,205B], $ SteelBlue4: 0L, SteelBlue4_rgb: [54B,100B,139B], $ DeepSkyBlue1: 0L, DeepSkyBlue1_rgb: [0B,191B,255B], $ DeepSkyBlue2: 0L, DeepSkyBlue2_rgb: [0B,178B,238B], $ DeepSkyBlue3: 0L, DeepSkyBlue3_rgb: [0B,154B,205B], $ DeepSkyBlue4: 0L, DeepSkyBlue4_rgb: [0B,104B,139B], $ SkyBlue1: 0L, SkyBlue1_rgb: [135B,206B,255B], $ SkyBlue2: 0L, SkyBlue2_rgb: [126B,192B,238B], $ SkyBlue3: 0L, SkyBlue3_rgb: [108B,166B,205B], $ SkyBlue4: 0L, SkyBlue4_rgb: [74B,112B,139B], $ LightSkyBlue1: 0L, LightSkyBlue1_rgb: [176B,226B,255B], $ LightSkyBlue2: 0L, LightSkyBlue2_rgb: [164B,211B,238B], $ LightSkyBlue3: 0L, LightSkyBlue3_rgb: [141B,182B,205B], $ LightSkyBlue4: 0L, LightSkyBlue4_rgb: [96B,123B,139B], $ SlateGray1: 0L, SlateGray1_rgb: [198B,226B,255B], $ SlateGray2: 0L, SlateGray2_rgb: [185B,211B,238B], $ SlateGray3: 0L, SlateGray3_rgb: [159B,182B,205B], $ SlateGray4: 0L, SlateGray4_rgb: [108B,123B,139B], $ LightSteelBlue1: 0L, LightSteelBlue1_rgb: [202B,225B,255B], $ LightSteelBlue2: 0L, LightSteelBlue2_rgb: [188B,210B,238B], $ LightSteelBlue3: 0L, LightSteelBlue3_rgb: [162B,181B,205B], $ LightSteelBlue4: 0L, LightSteelBlue4_rgb: [110B,123B,139B], $ LightBlue1: 0L, LightBlue1_rgb: [191B,239B,255B], $ LightBlue2: 0L, LightBlue2_rgb: [178B,223B,238B], $ LightBlue3: 0L, LightBlue3_rgb: [154B,192B,205B], $ LightBlue4: 0L, LightBlue4_rgb: [104B,131B,139B], $ LightCyan1: 0L, LightCyan1_rgb: [224B,255B,255B], $ LightCyan2: 0L, LightCyan2_rgb: [209B,238B,238B], $ LightCyan3: 0L, LightCyan3_rgb: [180B,205B,205B], $ LightCyan4: 0L, LightCyan4_rgb: [122B,139B,139B], $ PaleTurquoise1: 0L, PaleTurquoise1_rgb: [187B,255B,255B], $ PaleTurquoise2: 0L, PaleTurquoise2_rgb: [174B,238B,238B], $ PaleTurquoise3: 0L, PaleTurquoise3_rgb: [150B,205B,205B], $ PaleTurquoise4: 0L, PaleTurquoise4_rgb: [102B,139B,139B], $ CadetBlue1: 0L, CadetBlue1_rgb: [152B,245B,255B], $ CadetBlue2: 0L, CadetBlue2_rgb: [142B,229B,238B], $ CadetBlue3: 0L, CadetBlue3_rgb: [122B,197B,205B], $ CadetBlue4: 0L, CadetBlue4_rgb: [83B,134B,139B], $ turquoise1: 0L, turquoise1_rgb: [0B,245B,255B], $ turquoise2: 0L, turquoise2_rgb: [0B,229B,238B], $ turquoise3: 0L, turquoise3_rgb: [0B,197B,205B], $ turquoise4: 0L, turquoise4_rgb: [0B,134B,139B], $ cyan1: 0L, cyan1_rgb: [0B,255B,255B], $ cyan2: 0L, cyan2_rgb: [0B,238B,238B], $ cyan3: 0L, cyan3_rgb: [0B,205B,205B], $ cyan4: 0L, cyan4_rgb: [0B,139B,139B], $ DarkSlateGray1: 0L, DarkSlateGray1_rgb: [151B,255B,255B], $ DarkSlateGray2: 0L, DarkSlateGray2_rgb: [141B,238B,238B], $ DarkSlateGray3: 0L, DarkSlateGray3_rgb: [121B,205B,205B], $ DarkSlateGray4: 0L, DarkSlateGray4_rgb: [82B,139B,139B], $ aquamarine1: 0L, aquamarine1_rgb: [127B,255B,212B], $ aquamarine2: 0L, aquamarine2_rgb: [118B,238B,198B], $ aquamarine3: 0L, aquamarine3_rgb: [102B,205B,170B], $ aquamarine4: 0L, aquamarine4_rgb: [69B,139B,116B], $ DarkSeaGreen1: 0L, DarkSeaGreen1_rgb: [193B,255B,193B], $ DarkSeaGreen2: 0L, DarkSeaGreen2_rgb: [180B,238B,180B], $ DarkSeaGreen3: 0L, DarkSeaGreen3_rgb: [155B,205B,155B], $ DarkSeaGreen4: 0L, DarkSeaGreen4_rgb: [105B,139B,105B], $ SeaGreen1: 0L, SeaGreen1_rgb: [84B,255B,159B], $ SeaGreen2: 0L, SeaGreen2_rgb: [78B,238B,148B], $ SeaGreen3: 0L, SeaGreen3_rgb: [67B,205B,128B], $ SeaGreen4: 0L, SeaGreen4_rgb: [46B,139B,87B], $ PaleGreen1: 0L, PaleGreen1_rgb: [154B,255B,154B], $ PaleGreen2: 0L, PaleGreen2_rgb: [144B,238B,144B], $ PaleGreen3: 0L, PaleGreen3_rgb: [124B,205B,124B], $ PaleGreen4: 0L, PaleGreen4_rgb: [84B,139B,84B], $ SpringGreen1: 0L, SpringGreen1_rgb: [0B,255B,127B], $ SpringGreen2: 0L, SpringGreen2_rgb: [0B,238B,118B], $ SpringGreen3: 0L, SpringGreen3_rgb: [0B,205B,102B], $ SpringGreen4: 0L, SpringGreen4_rgb: [0B,139B,69B], $ green1: 0L, green1_rgb: [0B,255B,0B], $ green2: 0L, green2_rgb: [0B,238B,0B], $ green3: 0L, green3_rgb: [0B,205B,0B], $ green4: 0L, green4_rgb: [0B,139B,0B], $ chartreuse1: 0L, chartreuse1_rgb: [127B,255B,0B], $ chartreuse2: 0L, chartreuse2_rgb: [118B,238B,0B], $ chartreuse3: 0L, chartreuse3_rgb: [102B,205B,0B], $ chartreuse4: 0L, chartreuse4_rgb: [69B,139B,0B], $ OliveDrab1: 0L, OliveDrab1_rgb: [192B,255B,62B], $ OliveDrab2: 0L, OliveDrab2_rgb: [179B,238B,58B], $ OliveDrab3: 0L, OliveDrab3_rgb: [154B,205B,50B], $ OliveDrab4: 0L, OliveDrab4_rgb: [105B,139B,34B], $ DarkOliveGreen1: 0L, DarkOliveGreen1_rgb: [202B,255B,112B], $ DarkOliveGreen2: 0L, DarkOliveGreen2_rgb: [188B,238B,104B], $ DarkOliveGreen3: 0L, DarkOliveGreen3_rgb: [162B,205B,90B], $ DarkOliveGreen4: 0L, DarkOliveGreen4_rgb: [110B,139B,61B], $ khaki1: 0L, khaki1_rgb: [255B,246B,143B], $ khaki2: 0L, khaki2_rgb: [238B,230B,133B], $ khaki3: 0L, khaki3_rgb: [205B,198B,115B], $ khaki4: 0L, khaki4_rgb: [139B,134B,78B], $ LightGoldenrod1: 0L, LightGoldenrod1_rgb: [255B,236B,139B], $ LightGoldenrod2: 0L, LightGoldenrod2_rgb: [238B,220B,130B], $ LightGoldenrod3: 0L, LightGoldenrod3_rgb: [205B,190B,112B], $ LightGoldenrod4: 0L, LightGoldenrod4_rgb: [139B,129B,76B], $ LightYellow1: 0L, LightYellow1_rgb: [255B,255B,224B], $ LightYellow2: 0L, LightYellow2_rgb: [238B,238B,209B], $ LightYellow3: 0L, LightYellow3_rgb: [205B,205B,180B], $ LightYellow4: 0L, LightYellow4_rgb: [139B,139B,122B], $ yellow1: 0L, yellow1_rgb: [255B,255B,0B], $ yellow2: 0L, yellow2_rgb: [238B,238B,0B], $ yellow3: 0L, yellow3_rgb: [205B,205B,0B], $ yellow4: 0L, yellow4_rgb: [139B,139B,0B], $ gold1: 0L, gold1_rgb: [255B,215B,0B], $ gold2: 0L, gold2_rgb: [238B,201B,0B], $ gold3: 0L, gold3_rgb: [205B,173B,0B], $ gold4: 0L, gold4_rgb: [139B,117B,0B], $ goldenrod1: 0L, goldenrod1_rgb: [255B,193B,37B], $ goldenrod2: 0L, goldenrod2_rgb: [238B,180B,34B], $ goldenrod3: 0L, goldenrod3_rgb: [205B,155B,29B], $ goldenrod4: 0L, goldenrod4_rgb: [139B,105B,20B], $ DarkGoldenrod1: 0L, DarkGoldenrod1_rgb: [255B,185B,15B], $ DarkGoldenrod2: 0L, DarkGoldenrod2_rgb: [238B,173B,14B], $ DarkGoldenrod3: 0L, DarkGoldenrod3_rgb: [205B,149B,12B], $ DarkGoldenrod4: 0L, DarkGoldenrod4_rgb: [139B,101B,8B], $ RosyBrown1: 0L, RosyBrown1_rgb: [255B,193B,193B], $ RosyBrown2: 0L, RosyBrown2_rgb: [238B,180B,180B], $ RosyBrown3: 0L, RosyBrown3_rgb: [205B,155B,155B], $ RosyBrown4: 0L, RosyBrown4_rgb: [139B,105B,105B], $ IndianRed1: 0L, IndianRed1_rgb: [255B,106B,106B], $ IndianRed2: 0L, IndianRed2_rgb: [238B,99B,99B], $ IndianRed3: 0L, IndianRed3_rgb: [205B,85B,85B], $ IndianRed4: 0L, IndianRed4_rgb: [139B,58B,58B], $ sienna1: 0L, sienna1_rgb: [255B,130B,71B], $ sienna2: 0L, sienna2_rgb: [238B,121B,66B], $ sienna3: 0L, sienna3_rgb: [205B,104B,57B], $ sienna4: 0L, sienna4_rgb: [139B,71B,38B], $ burlywood1: 0L, burlywood1_rgb: [255B,211B,155B], $ burlywood2: 0L, burlywood2_rgb: [238B,197B,145B], $ burlywood3: 0L, burlywood3_rgb: [205B,170B,125B], $ burlywood4: 0L, burlywood4_rgb: [139B,115B,85B], $ wheat1: 0L, wheat1_rgb: [255B,231B,186B], $ wheat2: 0L, wheat2_rgb: [238B,216B,174B], $ wheat3: 0L, wheat3_rgb: [205B,186B,150B], $ wheat4: 0L, wheat4_rgb: [139B,126B,102B], $ tan1: 0L, tan1_rgb: [255B,165B,79B], $ tan2: 0L, tan2_rgb: [238B,154B,73B], $ tan3: 0L, tan3_rgb: [205B,133B,63B], $ tan4: 0L, tan4_rgb: [139B,90B,43B], $ chocolate1: 0L, chocolate1_rgb: [255B,127B,36B], $ chocolate2: 0L, chocolate2_rgb: [238B,118B,33B], $ chocolate3: 0L, chocolate3_rgb: [205B,102B,29B], $ chocolate4: 0L, chocolate4_rgb: [139B,69B,19B], $ firebrick1: 0L, firebrick1_rgb: [255B,48B,48B], $ firebrick2: 0L, firebrick2_rgb: [238B,44B,44B], $ firebrick3: 0L, firebrick3_rgb: [205B,38B,38B], $ firebrick4: 0L, firebrick4_rgb: [139B,26B,26B], $ brown1: 0L, brown1_rgb: [255B,64B,64B], $ brown2: 0L, brown2_rgb: [238B,59B,59B], $ brown3: 0L, brown3_rgb: [205B,51B,51B], $ brown4: 0L, brown4_rgb: [139B,35B,35B], $ salmon1: 0L, salmon1_rgb: [255B,140B,105B], $ salmon2: 0L, salmon2_rgb: [238B,130B,98B], $ salmon3: 0L, salmon3_rgb: [205B,112B,84B], $ salmon4: 0L, salmon4_rgb: [139B,76B,57B], $ LightSalmon1: 0L, LightSalmon1_rgb: [255B,160B,122B], $ LightSalmon2: 0L, LightSalmon2_rgb: [238B,149B,114B], $ LightSalmon3: 0L, LightSalmon3_rgb: [205B,129B,98B], $ LightSalmon4: 0L, LightSalmon4_rgb: [139B,87B,66B], $ orange1: 0L, orange1_rgb: [255B,165B,0B], $ orange2: 0L, orange2_rgb: [238B,154B,0B], $ orange3: 0L, orange3_rgb: [205B,133B,0B], $ orange4: 0L, orange4_rgb: [139B,90B,0B], $ DarkOrange1: 0L, DarkOrange1_rgb: [255B,127B,0B], $ DarkOrange2: 0L, DarkOrange2_rgb: [238B,118B,0B], $ DarkOrange3: 0L, DarkOrange3_rgb: [205B,102B,0B], $ DarkOrange4: 0L, DarkOrange4_rgb: [139B,69B,0B], $ coral1: 0L, coral1_rgb: [255B,114B,86B], $ coral2: 0L, coral2_rgb: [238B,106B,80B], $ coral3: 0L, coral3_rgb: [205B,91B,69B], $ coral4: 0L, coral4_rgb: [139B,62B,47B], $ tomato1: 0L, tomato1_rgb: [255B,99B,71B], $ tomato2: 0L, tomato2_rgb: [238B,92B,66B], $ tomato3: 0L, tomato3_rgb: [205B,79B,57B], $ tomato4: 0L, tomato4_rgb: [139B,54B,38B], $ OrangeRed1: 0L, OrangeRed1_rgb: [255B,69B,0B], $ OrangeRed2: 0L, OrangeRed2_rgb: [238B,64B,0B], $ OrangeRed3: 0L, OrangeRed3_rgb: [205B,55B,0B], $ OrangeRed4: 0L, OrangeRed4_rgb: [139B,37B,0B], $ red1: 0L, red1_rgb: [255B,0B,0B], $ red2: 0L, red2_rgb: [238B,0B,0B], $ red3: 0L, red3_rgb: [205B,0B,0B], $ red4: 0L, red4_rgb: [139B,0B,0B], $ DeepPink1: 0L, DeepPink1_rgb: [255B,20B,147B], $ DeepPink2: 0L, DeepPink2_rgb: [238B,18B,137B], $ DeepPink3: 0L, DeepPink3_rgb: [205B,16B,118B], $ DeepPink4: 0L, DeepPink4_rgb: [139B,10B,80B], $ HotPink1: 0L, HotPink1_rgb: [255B,110B,180B], $ HotPink2: 0L, HotPink2_rgb: [238B,106B,167B], $ HotPink3: 0L, HotPink3_rgb: [205B,96B,144B], $ HotPink4: 0L, HotPink4_rgb: [139B,58B,98B], $ pink1: 0L, pink1_rgb: [255B,181B,197B], $ pink2: 0L, pink2_rgb: [238B,169B,184B], $ pink3: 0L, pink3_rgb: [205B,145B,158B], $ pink4: 0L, pink4_rgb: [139B,99B,108B], $ LightPink1: 0L, LightPink1_rgb: [255B,174B,185B], $ LightPink2: 0L, LightPink2_rgb: [238B,162B,173B], $ LightPink3: 0L, LightPink3_rgb: [205B,140B,149B], $ LightPink4: 0L, LightPink4_rgb: [139B,95B,101B], $ PaleVioletRed1: 0L, PaleVioletRed1_rgb: [255B,130B,171B], $ PaleVioletRed2: 0L, PaleVioletRed2_rgb: [238B,121B,159B], $ PaleVioletRed3: 0L, PaleVioletRed3_rgb: [205B,104B,137B], $ PaleVioletRed4: 0L, PaleVioletRed4_rgb: [139B,71B,93B], $ maroon1: 0L, maroon1_rgb: [255B,52B,179B], $ maroon2: 0L, maroon2_rgb: [238B,48B,167B], $ maroon3: 0L, maroon3_rgb: [205B,41B,144B], $ maroon4: 0L, maroon4_rgb: [139B,28B,98B], $ VioletRed1: 0L, VioletRed1_rgb: [255B,62B,150B], $ VioletRed2: 0L, VioletRed2_rgb: [238B,58B,140B], $ VioletRed3: 0L, VioletRed3_rgb: [205B,50B,120B], $ VioletRed4: 0L, VioletRed4_rgb: [139B,34B,82B], $ magenta1: 0L, magenta1_rgb: [255B,0B,255B], $ magenta2: 0L, magenta2_rgb: [238B,0B,238B], $ magenta3: 0L, magenta3_rgb: [205B,0B,205B], $ magenta4: 0L, magenta4_rgb: [139B,0B,139B], $ orchid1: 0L, orchid1_rgb: [255B,131B,250B], $ orchid2: 0L, orchid2_rgb: [238B,122B,233B], $ orchid3: 0L, orchid3_rgb: [205B,105B,201B], $ orchid4: 0L, orchid4_rgb: [139B,71B,137B], $ plum1: 0L, plum1_rgb: [255B,187B,255B], $ plum2: 0L, plum2_rgb: [238B,174B,238B], $ plum3: 0L, plum3_rgb: [205B,150B,205B], $ plum4: 0L, plum4_rgb: [139B,102B,139B], $ MediumOrchid1: 0L, MediumOrchid1_rgb: [224B,102B,255B], $ MediumOrchid2: 0L, MediumOrchid2_rgb: [209B,95B,238B], $ MediumOrchid3: 0L, MediumOrchid3_rgb: [180B,82B,205B], $ MediumOrchid4: 0L, MediumOrchid4_rgb: [122B,55B,139B], $ DarkOrchid1: 0L, DarkOrchid1_rgb: [191B,62B,255B], $ DarkOrchid2: 0L, DarkOrchid2_rgb: [178B,58B,238B], $ DarkOrchid3: 0L, DarkOrchid3_rgb: [154B,50B,205B], $ DarkOrchid4: 0L, DarkOrchid4_rgb: [104B,34B,139B], $ purple1: 0L, purple1_rgb: [155B,48B,255B], $ purple2: 0L, purple2_rgb: [145B,44B,238B], $ purple3: 0L, purple3_rgb: [125B,38B,205B], $ purple4: 0L, purple4_rgb: [85B,26B,139B], $ MediumPurple1: 0L, MediumPurple1_rgb: [171B,130B,255B], $ MediumPurple2: 0L, MediumPurple2_rgb: [159B,121B,238B], $ MediumPurple3: 0L, MediumPurple3_rgb: [137B,104B,205B], $ MediumPurple4: 0L, MediumPurple4_rgb: [93B,71B,139B], $ thistle1: 0L, thistle1_rgb: [255B,225B,255B], $ thistle2: 0L, thistle2_rgb: [238B,210B,238B], $ thistle3: 0L, thistle3_rgb: [205B,181B,205B], $ thistle4: 0L, thistle4_rgb: [139B,123B,139B], $ gray0: 0L, gray0_rgb: [0B,0B,0B], $ grey0: 0L, grey0_rgb: [0B,0B,0B], $ gray1: 0L, gray1_rgb: [3B,3B,3B], $ grey1: 0L, grey1_rgb: [3B,3B,3B], $ gray2: 0L, gray2_rgb: [5B,5B,5B], $ grey2: 0L, grey2_rgb: [5B,5B,5B], $ gray3: 0L, gray3_rgb: [8B,8B,8B], $ grey3: 0L, grey3_rgb: [8B,8B,8B], $ gray4: 0L, gray4_rgb: [10B,10B,10B], $ grey4: 0L, grey4_rgb: [10B,10B,10B], $ gray5: 0L, gray5_rgb: [13B,13B,13B], $ grey5: 0L, grey5_rgb: [13B,13B,13B], $ gray6: 0L, gray6_rgb: [15B,15B,15B], $ grey6: 0L, grey6_rgb: [15B,15B,15B], $ gray7: 0L, gray7_rgb: [18B,18B,18B], $ grey7: 0L, grey7_rgb: [18B,18B,18B], $ gray8: 0L, gray8_rgb: [20B,20B,20B], $ grey8: 0L, grey8_rgb: [20B,20B,20B], $ gray9: 0L, gray9_rgb: [23B,23B,23B], $ grey9: 0L, grey9_rgb: [23B,23B,23B], $ gray10: 0L, gray10_rgb: [26B,26B,26B], $ grey10: 0L, grey10_rgb: [26B,26B,26B], $ gray11: 0L, gray11_rgb: [28B,28B,28B], $ grey11: 0L, grey11_rgb: [28B,28B,28B], $ gray12: 0L, gray12_rgb: [31B,31B,31B], $ grey12: 0L, grey12_rgb: [31B,31B,31B], $ gray13: 0L, gray13_rgb: [33B,33B,33B], $ grey13: 0L, grey13_rgb: [33B,33B,33B], $ gray14: 0L, gray14_rgb: [36B,36B,36B], $ grey14: 0L, grey14_rgb: [36B,36B,36B], $ gray15: 0L, gray15_rgb: [38B,38B,38B], $ grey15: 0L, grey15_rgb: [38B,38B,38B], $ gray16: 0L, gray16_rgb: [41B,41B,41B], $ grey16: 0L, grey16_rgb: [41B,41B,41B], $ gray17: 0L, gray17_rgb: [43B,43B,43B], $ grey17: 0L, grey17_rgb: [43B,43B,43B], $ gray18: 0L, gray18_rgb: [46B,46B,46B], $ grey18: 0L, grey18_rgb: [46B,46B,46B], $ gray19: 0L, gray19_rgb: [48B,48B,48B], $ grey19: 0L, grey19_rgb: [48B,48B,48B], $ gray20: 0L, gray20_rgb: [51B,51B,51B], $ grey20: 0L, grey20_rgb: [51B,51B,51B], $ gray21: 0L, gray21_rgb: [54B,54B,54B], $ grey21: 0L, grey21_rgb: [54B,54B,54B], $ gray22: 0L, gray22_rgb: [56B,56B,56B], $ grey22: 0L, grey22_rgb: [56B,56B,56B], $ gray23: 0L, gray23_rgb: [59B,59B,59B], $ grey23: 0L, grey23_rgb: [59B,59B,59B], $ gray24: 0L, gray24_rgb: [61B,61B,61B], $ grey24: 0L, grey24_rgb: [61B,61B,61B], $ gray25: 0L, gray25_rgb: [64B,64B,64B], $ grey25: 0L, grey25_rgb: [64B,64B,64B], $ gray26: 0L, gray26_rgb: [66B,66B,66B], $ grey26: 0L, grey26_rgb: [66B,66B,66B], $ gray27: 0L, gray27_rgb: [69B,69B,69B], $ grey27: 0L, grey27_rgb: [69B,69B,69B], $ gray28: 0L, gray28_rgb: [71B,71B,71B], $ grey28: 0L, grey28_rgb: [71B,71B,71B], $ gray29: 0L, gray29_rgb: [74B,74B,74B], $ grey29: 0L, grey29_rgb: [74B,74B,74B], $ gray30: 0L, gray30_rgb: [77B,77B,77B], $ grey30: 0L, grey30_rgb: [77B,77B,77B], $ gray31: 0L, gray31_rgb: [79B,79B,79B], $ grey31: 0L, grey31_rgb: [79B,79B,79B], $ gray32: 0L, gray32_rgb: [82B,82B,82B], $ grey32: 0L, grey32_rgb: [82B,82B,82B], $ gray33: 0L, gray33_rgb: [84B,84B,84B], $ grey33: 0L, grey33_rgb: [84B,84B,84B], $ gray34: 0L, gray34_rgb: [87B,87B,87B], $ grey34: 0L, grey34_rgb: [87B,87B,87B], $ gray35: 0L, gray35_rgb: [89B,89B,89B], $ grey35: 0L, grey35_rgb: [89B,89B,89B], $ gray36: 0L, gray36_rgb: [92B,92B,92B], $ grey36: 0L, grey36_rgb: [92B,92B,92B], $ gray37: 0L, gray37_rgb: [94B,94B,94B], $ grey37: 0L, grey37_rgb: [94B,94B,94B], $ gray38: 0L, gray38_rgb: [97B,97B,97B], $ grey38: 0L, grey38_rgb: [97B,97B,97B], $ gray39: 0L, gray39_rgb: [99B,99B,99B], $ grey39: 0L, grey39_rgb: [99B,99B,99B], $ gray40: 0L, gray40_rgb: [102B,102B,102B], $ grey40: 0L, grey40_rgb: [102B,102B,102B], $ gray41: 0L, gray41_rgb: [105B,105B,105B], $ grey41: 0L, grey41_rgb: [105B,105B,105B], $ gray42: 0L, gray42_rgb: [107B,107B,107B], $ grey42: 0L, grey42_rgb: [107B,107B,107B], $ gray43: 0L, gray43_rgb: [110B,110B,110B], $ grey43: 0L, grey43_rgb: [110B,110B,110B], $ gray44: 0L, gray44_rgb: [112B,112B,112B], $ grey44: 0L, grey44_rgb: [112B,112B,112B], $ gray45: 0L, gray45_rgb: [115B,115B,115B], $ grey45: 0L, grey45_rgb: [115B,115B,115B], $ gray46: 0L, gray46_rgb: [117B,117B,117B], $ grey46: 0L, grey46_rgb: [117B,117B,117B], $ gray47: 0L, gray47_rgb: [120B,120B,120B], $ grey47: 0L, grey47_rgb: [120B,120B,120B], $ gray48: 0L, gray48_rgb: [122B,122B,122B], $ grey48: 0L, grey48_rgb: [122B,122B,122B], $ gray49: 0L, gray49_rgb: [125B,125B,125B], $ grey49: 0L, grey49_rgb: [125B,125B,125B], $ gray50: 0L, gray50_rgb: [127B,127B,127B], $ grey50: 0L, grey50_rgb: [127B,127B,127B], $ gray51: 0L, gray51_rgb: [130B,130B,130B], $ grey51: 0L, grey51_rgb: [130B,130B,130B], $ gray52: 0L, gray52_rgb: [133B,133B,133B], $ grey52: 0L, grey52_rgb: [133B,133B,133B], $ gray53: 0L, gray53_rgb: [135B,135B,135B], $ grey53: 0L, grey53_rgb: [135B,135B,135B], $ gray54: 0L, gray54_rgb: [138B,138B,138B], $ grey54: 0L, grey54_rgb: [138B,138B,138B], $ gray55: 0L, gray55_rgb: [140B,140B,140B], $ grey55: 0L, grey55_rgb: [140B,140B,140B], $ gray56: 0L, gray56_rgb: [143B,143B,143B], $ grey56: 0L, grey56_rgb: [143B,143B,143B], $ gray57: 0L, gray57_rgb: [145B,145B,145B], $ grey57: 0L, grey57_rgb: [145B,145B,145B], $ gray58: 0L, gray58_rgb: [148B,148B,148B], $ grey58: 0L, grey58_rgb: [148B,148B,148B], $ gray59: 0L, gray59_rgb: [150B,150B,150B], $ grey59: 0L, grey59_rgb: [150B,150B,150B], $ gray60: 0L, gray60_rgb: [153B,153B,153B], $ grey60: 0L, grey60_rgb: [153B,153B,153B], $ gray61: 0L, gray61_rgb: [156B,156B,156B], $ grey61: 0L, grey61_rgb: [156B,156B,156B], $ gray62: 0L, gray62_rgb: [158B,158B,158B], $ grey62: 0L, grey62_rgb: [158B,158B,158B], $ gray63: 0L, gray63_rgb: [161B,161B,161B], $ grey63: 0L, grey63_rgb: [161B,161B,161B], $ gray64: 0L, gray64_rgb: [163B,163B,163B], $ grey64: 0L, grey64_rgb: [163B,163B,163B], $ gray65: 0L, gray65_rgb: [166B,166B,166B], $ grey65: 0L, grey65_rgb: [166B,166B,166B], $ gray66: 0L, gray66_rgb: [168B,168B,168B], $ grey66: 0L, grey66_rgb: [168B,168B,168B], $ gray67: 0L, gray67_rgb: [171B,171B,171B], $ grey67: 0L, grey67_rgb: [171B,171B,171B], $ gray68: 0L, gray68_rgb: [173B,173B,173B], $ grey68: 0L, grey68_rgb: [173B,173B,173B], $ gray69: 0L, gray69_rgb: [176B,176B,176B], $ grey69: 0L, grey69_rgb: [176B,176B,176B], $ gray70: 0L, gray70_rgb: [179B,179B,179B], $ grey70: 0L, grey70_rgb: [179B,179B,179B], $ gray71: 0L, gray71_rgb: [181B,181B,181B], $ grey71: 0L, grey71_rgb: [181B,181B,181B], $ gray72: 0L, gray72_rgb: [184B,184B,184B], $ grey72: 0L, grey72_rgb: [184B,184B,184B], $ gray73: 0L, gray73_rgb: [186B,186B,186B], $ grey73: 0L, grey73_rgb: [186B,186B,186B], $ gray74: 0L, gray74_rgb: [189B,189B,189B], $ grey74: 0L, grey74_rgb: [189B,189B,189B], $ gray75: 0L, gray75_rgb: [191B,191B,191B], $ grey75: 0L, grey75_rgb: [191B,191B,191B], $ gray76: 0L, gray76_rgb: [194B,194B,194B], $ grey76: 0L, grey76_rgb: [194B,194B,194B], $ gray77: 0L, gray77_rgb: [196B,196B,196B], $ grey77: 0L, grey77_rgb: [196B,196B,196B], $ gray78: 0L, gray78_rgb: [199B,199B,199B], $ grey78: 0L, grey78_rgb: [199B,199B,199B], $ gray79: 0L, gray79_rgb: [201B,201B,201B], $ grey79: 0L, grey79_rgb: [201B,201B,201B], $ gray80: 0L, gray80_rgb: [204B,204B,204B], $ grey80: 0L, grey80_rgb: [204B,204B,204B], $ gray81: 0L, gray81_rgb: [207B,207B,207B], $ grey81: 0L, grey81_rgb: [207B,207B,207B], $ gray82: 0L, gray82_rgb: [209B,209B,209B], $ grey82: 0L, grey82_rgb: [209B,209B,209B], $ gray83: 0L, gray83_rgb: [212B,212B,212B], $ grey83: 0L, grey83_rgb: [212B,212B,212B], $ gray84: 0L, gray84_rgb: [214B,214B,214B], $ grey84: 0L, grey84_rgb: [214B,214B,214B], $ gray85: 0L, gray85_rgb: [217B,217B,217B], $ grey85: 0L, grey85_rgb: [217B,217B,217B], $ gray86: 0L, gray86_rgb: [219B,219B,219B], $ grey86: 0L, grey86_rgb: [219B,219B,219B], $ gray87: 0L, gray87_rgb: [222B,222B,222B], $ grey87: 0L, grey87_rgb: [222B,222B,222B], $ gray88: 0L, gray88_rgb: [224B,224B,224B], $ grey88: 0L, grey88_rgb: [224B,224B,224B], $ gray89: 0L, gray89_rgb: [227B,227B,227B], $ grey89: 0L, grey89_rgb: [227B,227B,227B], $ gray90: 0L, gray90_rgb: [229B,229B,229B], $ grey90: 0L, grey90_rgb: [229B,229B,229B], $ gray91: 0L, gray91_rgb: [232B,232B,232B], $ grey91: 0L, grey91_rgb: [232B,232B,232B], $ gray92: 0L, gray92_rgb: [235B,235B,235B], $ grey92: 0L, grey92_rgb: [235B,235B,235B], $ gray93: 0L, gray93_rgb: [237B,237B,237B], $ grey93: 0L, grey93_rgb: [237B,237B,237B], $ gray94: 0L, gray94_rgb: [240B,240B,240B], $ grey94: 0L, grey94_rgb: [240B,240B,240B], $ gray95: 0L, gray95_rgb: [242B,242B,242B], $ grey95: 0L, grey95_rgb: [242B,242B,242B], $ gray96: 0L, gray96_rgb: [245B,245B,245B], $ grey96: 0L, grey96_rgb: [245B,245B,245B], $ gray97: 0L, gray97_rgb: [247B,247B,247B], $ grey97: 0L, grey97_rgb: [247B,247B,247B], $ gray98: 0L, gray98_rgb: [250B,250B,250B], $ grey98: 0L, grey98_rgb: [250B,250B,250B], $ gray99: 0L, gray99_rgb: [252B,252B,252B], $ grey99: 0L, grey99_rgb: [252B,252B,252B], $ gray100: 0L, gray100_rgb: [255B,255B,255B], $ grey100: 0L, grey100_rgb: [255B,255B,255B], $ DarkGrey: 0L, DarkGrey_rgb: [169B,169B,169B], $ DarkGray: 0L, DarkGray_rgb: [169B,169B,169B], $ DarkBlue: 0L, DarkBlue_rgb: [0B,0B,139B], $ DarkCyan: 0L, DarkCyan_rgb: [0B,139B,139B], $ DarkMagenta: 0L, DarkMagenta_rgb: [139B,0B,139B], $ DarkRed: 0L, DarkRed_rgb: [139B,0B,0B], $ LightGreen: 0L, LightGreen_rgb: [144B,238B,144B]} endif else begin ;; if !col is defined and the requested color table matches the ;; current color table and the number of colors is the same and ;; reload keyword is not set, then return without doing anything ;; Also force reload if device has changed. ;print,ct,!col.loaded_ct ;print,ncols,!col.ncols if not keyword_set(reload) then $ if (ct eq !col.loaded_ct) and (ncols eq !col.ncols) $ and (!d.name eq !col.gdevice) then begin if keyword_set(verbose) then $ print,'Color table already loaded; do nothing and return.' return endif endelse ;; now !col is defined, and the rgb values are in place. Next, load ;; in the color table, if one is requested. if ct ne -1 then begin ;; this means that one of IDL's predfined color tables has been ;; requested. loadct,ct,ncolors=(ncols < 256),/silent if keyword_set(verbose) then $ print,ct,(ncols < 256),format='("Loading colortable ",I4," with ",' + $ 'I4," colors.")' endif !col.loaded_ct = ct tvlct,r,g,b,/get ;; if we got here b/c we changed graphics devices, then reset ;; gdevice !col.gdevice = !d.name ;; Now we have to either build the color indexes to match the table, ;; or build !col.ct to match the color table. ;; this is a pain because we have no good way to get to the tags. ;; docs do not specify that tags will necessarily be in the order ;; defined. Because that is much faster, I will assume it and ;; check the validity nct = n_tags(!col) nothertags = 4 ;; number of tags that are not colors nstrcols = (nct-nothertags)/2 ;; this is the # of colors named in the structure tagnames = tag_names(!col) if truecolor then begin if keyword_set(verbose) then $ print,'Calculating color values from RGB and creating colortable' device,get_visual_depth=visual_depth if visual_depth eq 24 then begin ;; first we build all the color indices from the rgb values for i=0,nstrcols-1 do begin ;; check tagnames to see that we are changing the right thing j = 2*i+nothertags if tagnames(j)+'_RGB' eq tagnames(j+1) then begin !col.(j) = total(!col.(j+1)*[1,256L,65536L]) endif else begin print,' I don''t understand the structure. Oops.' stop endelse endfor ;; now fill in the color table values !col.ct = r+256L*g+65536L*b endif else begin if visual_depth ne 16 then begin print,'col_define cannot deal with visual depth',visual_depth return endif ;; here we are in the living hell of idl 16 bit graphics ;; red and blue values range from 0 to 31, green from 0 to 63. ;; (according to X docs, these ranges can be set; 5/6/5 is just ;; the default. I don't know if this can be detected. ;; Obviously this will break if a different range is used.) ;; However, colors are still constructed as r+256*g+256^2*b. ;; And the colortable that IDL gives you is still in 0 to 255 ;; for all colors. for i=0,nstrcols-1 do begin ;; check tagnames to see that we are changing the right thing j = 2*i+nothertags if tagnames(j)+'_RGB' eq tagnames(j+1) then begin !col.(j) = total(!col.(j+1)*[1,256L,65536L]) !col.(j) = (!col.(j+1))[0]/8+ $ ((!col.(j+1))[1]/4)*256L+ $ ((!col.(j+1))[2]/8)*65536L endif else begin print,' I don''t understand the structure. Oops.' stop endelse endfor ;; now fill in the color table values !col.ct = r/8+256L*(g/4)+65536L*(b/8) endelse endif else begin ;; now we deal with the 8-bit displays ;; define an index for each color name matching as close as ;; possible the rgb color if keyword_set(verbose) then $ print,'Finding best values for colors from colortable' for i=1,nstrcols-1 do begin ;; first check colors j = 2*i+nothertags if tagnames(j)+'_RGB' eq tagnames(j+1) then begin ;; find which entry in color table is least squares closest to ;; rgb values of the color chi2 = (long(!col.(j+1)[0])-long(r))^2 + $ (long(!col.(j+1)[1])-long(g))^2+(long(!col.(j+1)[2])-long(b))^2 dummy = min(chi2,indy) !col.(j) = indy endif else begin print,' I don''t understand the structure. Oops.' stop endelse endfor ;; using color table !col.ct[i]=i What could be easier? !col.ct[0:ncols-1] = indgen(ncols) endelse ;; fill the top with white if ncols lt 256 then $ !col.ct(ncols:255) = !col.white if keyword_set(die) then begin if keyword_set(verbose) then $ print,'Halting col_define' stop endif ;; we're done. bye bye. end ;; The contents of rgb.txt may be copyrighted. If so, it is legal to ;; use it here as long as I include this stuff: ;; ;; Copyright (C) 1994 X Consortium ;; ;; Permission is hereby granted, free of charge, to any person obtaining a copy ;; of this software and associated documentation files (the "Software"), to ;; deal in the Software without restriction, including without limitation the ;; rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ;; sell copies of the Software, and to permit persons to whom the Software is ;; furnished to do so, subject to the following conditions: ;; ;; The above copyright notice and this permission notice shall be included in ;; all copies or substantial portions of the Software. ;; ;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ;; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ;; FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ;; X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ;; AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ;; TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ;; ;; Except as contained in this notice, the name of the X Consortium shall not ;; be used in advertising or otherwise to promote the sale, use or other deal- ;; ings in this Software without prior written authorization from the X Consor- ;; tium. ;; ;; X Window System is a trademark of X Consortium, Inc. ;; ;;