/// @file /// @ingroup public_apis /************************************************************************* * 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 v2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html * * Contributors: Details at https://graphviz.org *************************************************************************/ #pragma once #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, 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]; 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