/* * $Id: contour.h,v 1.9 2004/08/09 00:51:29 sfeam Exp $ */ /* GNUPLOT - contour.h */ /*[ * Copyright 1999, 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_CONTOUR_H # define GNUPLOT_CONTOUR_H /* #if... / #include / #define collection: */ #include "syscfg.h" #include "gp_types.h" #include "dynarray.h" #include "graph3d.h" #define DEFAULT_CONTOUR_LEVELS 5 #define DEFAULT_NUM_APPROX_PTS 5 #define DEFAULT_CONTOUR_ORDER 4 #define MAX_BSPLINE_ORDER 10 /* Type definitions */ typedef enum en_contour_kind { /* Method of drawing the contour lines found */ CONTOUR_KIND_LINEAR, CONTOUR_KIND_CUBIC_SPL, CONTOUR_KIND_BSPLINE } t_contour_kind; typedef enum en_contour_levels_kind { /* How contour levels are set */ LEVELS_AUTO, /* automatically selected */ LEVELS_INCREMENTAL, /* user specified start & incremnet */ LEVELS_DISCRETE /* user specified discrete levels */ } t_contour_levels_kind; /* Used to allocate the tri-diag matrix. */ typedef double tri_diag[3]; /* Variables of contour.c needed by other modules: */ extern char contour_format[32]; extern t_contour_kind contour_kind; extern t_contour_levels_kind contour_levels_kind; extern int contour_levels; extern int contour_order; extern int contour_pts; /* storage for z levels to draw contours at */ extern dynarray dyn_contour_levels_list; #define contour_levels_list ((double *)dyn_contour_levels_list.v) /* Prototypes of functions exported by contour.c */ struct gnuplot_contours *contour __PROTO((int num_isolines, struct iso_curve *iso_lines)); int solve_tri_diag __PROTO((tri_diag m[], double r[], double x[], int n)); #endif /* GNUPLOT_CONTOUR_H */