// colour.h // // by John D. de Boer enum { // 125-colour palette scheme black=0,midnightblue,sapphire,aad,blue,darkgreen,pewter,abc,ultramarine,abe,forestgreen, malachite,acc,acd,medblue,ada,emerald,teal,aqua,lightblue,green,aeb,seagreen,seafoam,cyan, oxblood,darkplum,bac,indigo,bae,darkolive,darkgrey,navy,bbd,royalblue,bca,jade,bcc, bce,greyblue,bdb,leafgreen,bdd,greygreen,bea,skyblue,bec,kellygreen,bee,turquoise, rust,grape,plum,cad,purple,sienna,mahogany,cbc,orchid,cbe,olive,ccb,grey,ccd, periwinkle,cda,sagegreen,cdc,cdd,cde,limegreen,ceb,lightgreen,ced,robinsegg, brickred,crimson,dac,violet,brightpurple,burntorange,dbb,dbc,dbd,dbe,dca,lightbrown, taupe,mauve,lavender,lightolive,ddb,khaki,lightgrey,babyblue,dea,chartreuse,honeydew,palegreen,dee, red,vermilion,fuchsia,ead,magenta,sarasota,ebb,watermelon,pink,ebe,orange,peach, dustyrose,rose,lilac,goldenrod,apricot,coral,palerose,lightmauve,yellow,lightyellow,paleyellow,eed,white, // other useful colours beige,brown,medbrown,chestnut,terracotta, MAXCOLOUR }; // Initialisation void initcolour(void); // Quartz colour utilities typedef struct { float c[4]; } colour; void rgb2colour(const RGBColor *RGB, colour *C); void setrgb(colour *C, float R, float G, float B); void setcolour(colour *C, int COLOUR); void greyshade(colour *C, float G); void setalpha(colour *C, float F); void mix(float F, const colour *A, const colour *B, colour *C); void mixindex(float F, int A, int B, colour *C); void shadecolour(colour *A, float Shade); bool darkcolour(const colour *C); bool verydarkcolour(const colour *C); bool parsecolourname(const char *S, colour *C);