/* $Id: color.h,v 1.8 2011/01/25 16:30:48 ellson Exp $ $Revision: 1.8 $ */ /* vim:set shiftwidth=4 ts=8: */ /************************************************************************* * Copyright (c) 2011 AT&T Intellectual Property * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: See CVS logs. Details at http://www.graphviz.org/ *************************************************************************/ #ifndef GV_COLOR_H #define GV_COLOR_H /* #include "arith.h" */ #ifdef __cplusplus extern "C" { #endif typedef struct hsvrgbacolor_t { char *name; unsigned char h, s, v; unsigned char r, g, b, a; } hsvrgbacolor_t; /* possible representations of color in gvcolor_t */ typedef enum { HSVA_DOUBLE, RGBA_BYTE, RGBA_WORD, CMYK_BYTE, RGBA_DOUBLE, COLOR_STRING, COLOR_INDEX } color_type_t; /* gvcolor_t can hold a color spec in a choice or representations */ typedef struct color_s { union { double RGBA[4]; double HSVA[4]; unsigned char rgba[4]; unsigned char cmyk[4]; int rrggbbaa[4]; char *string; int index; } u; color_type_t type; } gvcolor_t; #define COLOR_MALLOC_FAIL -1 #define COLOR_UNKNOWN 1 #define COLOR_OK 0 #ifdef __cplusplus } #endif #endif