/* Colour group definitions */
/* Created 16.10.2002 T. Milius
   Changed 10.09.2003 T. Milius */
/* (c) Copyright 2002-2003 by Thomas Milius Stade, Germany
   Source must not be altered without agreement of the owner.
   The owner of the source is allowed to use this code inside programs without
   publishing the code of this programs. These programs may be commercial.
   Other developers can use this source freely inside own software if the source
   code of this programs is made public to same conditions like valid to this code
   and no commercial profit is taken from the programs based on this code

   Code or parts of it are not allowed to be used within GPL code or
   similar licenses which are "infecting" other code and trying to "supersede"
   other licenses. */
/* ANSI-C */

#ifndef colour_groups_h
#define colour_groups_h

/* !!!!!!!!!! libraries !!!!!!!!!! */

/* !!!!!!!!!! definitions !!!!!!!!!! */
/* Colour groups:

   A colour is belonging to several special colour groups
   these are evaluated inside the dumper for various purposes.
   Each bit of a 32 Bit mask has a special meaning:

   Bit Meaning
   0   paper colour -> member of no other group
   1   pure black   -> !!! usually !!! but not necassry also member inside a black group
   2   Black group
   3   Cyan group. Also member in colour group and CMY group
   4   Magenta group. Also member in colour group and CMY group
   5   Yellow group. Also member in colour group and CMY group
   6   CMY group. Also member in colour group
   7   RGB group. Also member in colour group
   8   colour group. */

#define COLOUR_GROUP_PAPER_COLOUR   0x00000001
/* Pure Black and Black group.
   There can be cases where pure Black is not a member of a colour group */
#define COLOUR_GROUP_PURE_BLACK     0x00000002
#define COLOUR_GROUP_BLACK_GROUP    0x00000004
/* Cyan, CMY and Colour group */
#define COLOUR_GROUP_CYAN_GROUP     0x00000148
/* Magenta, CMY and Colour group */
#define COLOUR_GROUP_MAGENTA_GROUP  0x00000150
/* Yellow, CMY and Colour group */
#define COLOUR_GROUP_YELLOW_GROUP   0x00000160
/* CMY and Colour group */
#define COLOUR_GROUP_CMY_GROUP      0x00000140
/* RGB and Colour group */
#define COLOUR_GROUP_RGB_GROUP      0x00000180
#define COLOUR_GROUP_COLOUR_GROUP   0x00000100

#define COLOUR_GROUP_BLACK_MODE (COLOUR_GROUP_BLACK_GROUP | COLOUR_GROUP_PAPER_COLOUR)
#define COLOUR_GROUP_CYAN_MODE (COLOUR_GROUP_BLACK_GROUP | COLOUR_GROUP_PAPER_COLOUR)
#define COLOUR_GROUP_MAGENTA_MODE (COLOUR_GROUP_BLACK_GROUP | COLOUR_GROUP_PAPER_COLOUR)
#define COLOUR_GROUP_YELLOW_MODE (COLOUR_GROUP_BLACK_GROUP | COLOUR_GROUP_PAPER_COLOUR)

#define COLOUR_GROUP_ALL_COLOURS    0xFFFFFFFF

#define COLOUR_GROUP_COMPONENT_MASK 0x000001FC

/* !!!!!!!!!! data structures !!!!!!!!!! */

/* !!!!!!!!!! support functions !!!!!!!!!! */

/* !!!!!!!!!! functions !!!!!!!!!! */

#endif
