/* GNUPLOT - gp_types.h */
/*[
* Copyright 2000, 2004 Thomas Williams, Colin Kelley
*
* Permission to use, copy, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
*
* Permission to modify the software is granted, but not the right to
* distribute the complete modified source code. Modifications are to
* be distributed as patches to the released version. Permission to
* distribute binaries produced by compiling modified sources is granted,
* provided you
* 1. distribute the corresponding source modifications from the
* released version in the form of a patch file along with the binaries,
* 2. add special version identification to distinguish your version
* in addition to the base release version number,
* 3. provide your name and address as the primary contact for the
* support of your modified version, and
* 4. retain our contact information in regard to use of the base
* software.
* Permission to distribute the released version of the source code along
* with corresponding source modifications in the form of a patch file is
* granted with same provisions 2 through 4 for binary distributions.
*
* This software is provided "as is" without express or implied warranty
* to the extent permitted by applicable law.
]*/
#ifndef GNUPLOT_GPTYPES_H
#define GNUPLOT_GPTYPES_H
#include "syscfg.h"
#define MAX_ID_LEN 50 /* max length of an identifier */
#define MAX_LINE_LEN 1024 /* maximum number of chars allowed on line */
#define DEG2RAD (M_PI / 180.0)
/* type_udv() will return 0 rather than type if udv does not exist */
enum DATA_TYPES {
INTGR=1,
CMPLX,
STRING,
DATABLOCK,
FUNCTIONBLOCK,
ARRAY,
/* ARRAY subcategories are marked in array->value_array[0].type */
COLORMAP_ARRAY, /* Array containing packed ARGB values */
TEMP_ARRAY, /* Array with lifetime limited to evaluation stack */
LOCAL_ARRAY, /* Array declared local (function block or bracketed clause) */
VOXELGRID,
NOTDEFINED, /* exists, but value is currently undefined */
INVALID_VALUE, /* used only for error return by external functions */
INVALID_NAME /* used only to trap errors in linked axis function definition */
/* or a format specifier that does not match a variable type */
};
enum MODE_PLOT_TYPE {
MODE_QUERY, MODE_PLOT, MODE_SPLOT
};
enum PLOT_TYPE {
FUNC, DATA, FUNC3D, DATA3D, NODATA, KEYENTRY, VOXELDATA
};
/* we explicitly assign values to the types, such that we can
* perform bit tests to see if the style involves points and/or lines
* bit 0 (val 1) = line, bit 1 (val 2) = point, bit 2 (val 4)= error
* This allows rapid decisions about the sample drawn into the key,
* for example.
*/
/* HBB 20010610: new enum, to make mnemonic names for these flags
* accessible everywhere */
typedef enum e_PLOT_STYLE_FLAGS {
PLOT_STYLE_HAS_LINE = (1